Mysql数据库入门一

来源:互联网 发布:电子报刊手机制作软件 编辑:程序博客网 时间:2024/06/08 03:53

数据库的概述:

1.什么是数据库?

  • 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合.
  • 文件系统,数据的仓库

2.数据库管理系统?

  • 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。
  • 软件
  • 数据库=数据的集合+数据库软件

Tips:

通常情况,经常会用数据库来表示他们使用的数据库软件,这经常会引起混淆,确切的说,数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。

SQL分类:

  • DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;
    CREATE、 ALTER、DROP(用来操作数据库和数据库表)

  • DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);
    INSERT、 UPDATE、 DELETE(用于操作数据)

  • DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别

  • DQL(Data Query Language):数据查询语言,用来查询记录(数据)
    SELECT(查询数据库表中的数据)

数据库的crud:

登录数据库:

mysql -uroot -p //按回车键然后输入密文密码 -p后面没有分号mysql -uroot -p123456 //-p后面直接加上密码, 注:后面没有分号

使用数据库:

USE databaseName; // databaseName是你要切换的数据库名

创建数据库:

CREATE DATABASE databaseName; // databaseName要创建的数据库名

字符集(charset):是一套符号和编码;

校对规则(collation):是在字符集内用于比较字符的一套规则

CREATE DATABASE databaseName [CHARACTER SET charset] [COLLAT collation];如:CREATE DATABASE databaseName CHARACTER SET gbk COLLAT gbk_chines e_ci;

删除数据库:

DROP databaseName; // databaseName要删除的数据库

显示已有的数据库:

 SHOW DATABASES; // 别忘了databases 后面有s的哦

查看正在使用的数据库:

SELECT DATABASE();

查看数据库定义的信息:

SHOW CREATE DATABASE databaseName; // databaseName要查看的数据库

修改数据库:

alter DATABASE databaseName [CHARACTER SET charset]; // databaseName要修改的数据库, 后面加上需要修改的东西

表的CRUD(一):

显示所有的表:

SHOW TABLES; // 别玩了tables后面有s哦

查看表结构:

DESC tableName; // tableName要查看的表名

创建表:

CREATE TABLE tableName (    列名 类型 约束,    列名 类型 约束,    列名 类型 约束,    ....);如:// 注意最后一条列名信息后面不需要逗号","CREATE TABLE myDB (    uid int auto_imcrement primary key,    uname varchar(20),    age int);// 或者在创建表的后面加一些信息CREATE TABLE myDB (    uid int auto_imcrement primary key,    uname varchar(20),    age int)ENGINE=InnoDB DEFAULT CHARSET=utf8;

约束:

  • not null: 非空 (存放数据的时候,该列不能为空)

  • unique: 唯一约束, 后面的数据不能和前面重复

  • primary key: 主键约束(非空+唯一); id:作为数据的唯一标识,通常给id int类型设置主键约束,auto_increment null
  • auto_increment: 自动增长列 ,一定是和主键一起使用的。

修改表:

// 修改表名方式一RENAME TABLE old_tableName to new_tableName;// 修改表名方式二ALTER TABLE old_tableName RANAME new_tableName;// 修改列的类型约束(只能修改类型和约束)ALTER TABLE tableName MODIFY 列名 [类型] [约束];// 修改列的名称(可以修改列名,类型和约束)ALTER TABLE tableName CHANGE 旧列名 [新列名] [类型] [约束];ALTER TABLE student CHANGE t_name s_name varchar(20); // 把t_name列名改为s_name列名// 增加一列ALTER TABLE tableNane ADD 列名类型 约束;// 删除表DROP TABLE tableName; 

表的CRUD(二)

插入数据:

// 对应列插入相应的值INSERT INTO tableName(列, 列..) VALUE (值, 值..);// 插入全部值 (有多少列就有多少有值, 如有空 要用NULL)INSERT INTO tableName VALUE (值, 值...);

注意 :

  • 没有赋值的列,系统自动赋为null
  • 列名与列值的类型、个数、顺序要一一对应
  • 值不要超出列定义的长度
  • 如果插入空值,请使用null
  • 插入的日期和字符串,使用引号括起来

更新表数据:

UPDATE tableName SET 字段 = 值, 字段 = 值 [WHERE 条件];

删除表数据:

// 可以根据某个条件删除表数据DELETE FROM tableName [WHERE 条件];// 删除表再创建一张空表TRUNCATE TABLE tableName;

查询表:

// 查询某张表的全部记录SELECT * FROM tableName;// 根据某些条件查询某些记录SELECT [列名,列名] [*] [聚合函数][DISTINCT 字段] FROM 表名 [WHERE --> GROUP BY -->HAVING--> ORDER BY]

聚合函数: sum(), avg(), max(), min(), count();

// 查询学生表的chinese成绩的总和SELECT SUM(chinese) FROM student;// 查询学生表的chinese成绩的平均分SELECT AVG(chinese) FROM student;// 查询学生表的chinese成绩的最大值SELECT MAX(chinese) FROM student;// 查询学生表的chinese成绩的最小值SELECT MIN(chinese) FROM student;// 根据id查询有多少学生SELECT COUNT(id) FROM student;

排序查询: asc-升序,desc-降序

// 根据升序查询学生的语文成绩SELECT * FROM student ORDER BY chinese ASC;// 根据降序查询学生的语文成绩SELECT * FROM student ORDER BY chinese DESC;

group by:

语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。

例子: 比如我想根据性别分类列出男女的个数

SELECT sex,COUNT(*) AS sum FROM students GROUP BY(sex);例如输出:sex   sum男     2女     3
原创粉丝点击