一、连接数据库
mysql -uroot -p 密码 -h IP地址(默认本机localhost) -P 端口号(默认3306)
二、对库的操作
查看所有的库
SHOW DATABASES;
创建库
CREATE DATABASE 库名;
切换数据库
USE 库名;
删除数据库
DROP DATABASE 库名;
三、对表的操作
查看当前库中的所有表
SHOW TABLES;
创建表
CREATE TABLE 表名…;
查看表结构
DESC 表名;
查看建表语句
SHOW CREATE TABLE 表名(\G);
\G–格式化
删除表
DROP TABLE 表名;
四、数据操作
添加数据
1.为指定的字段添加一条数据(一一对应)
格式:INSERT INTO student(id,name) values(6,‘田七’);
2.不指定字段时,必须为所有字段添加数据(一一对应)
格式:INSERT INTO student values(5,‘赵六’,30,‘1’,‘z@163.com’,‘web’);
3.一次插入多条数据
格式:INSERT INTO 表名(字段1,字段2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
更新数据
格式:UPDATE 表名 SET 修改的字段和值 WHERE 条件;
删除数据
格式:DELETE FROM 表名 WHERE 条件;
查询数据
格式:SELECT 字段 FROM 表名;
五、数据的数据类型
数值
1.int 4字节
2.tinyint 1字节
3.decimal 一般存浮点型
格式:DECIMAL(M,D)
M你要存的数据,D保留几位小数
例:decimal(1234,2) 12.34
字符串
1.char–定长字符串
char(20)
就算你当前字段中只存储了1个字符,那么它也是占据20个字符的大小。
2.varchar–变长字符串
varchar(20)
最多能存20个字符,如果存了小于20个字符,它的实际占据大小是以你存的内容为准。
3.text–文本类型
六、常见的字段约束
unsigned
无符号,一般给数值型的字段添加,如果添加代表当前字段只能存正数。
使用时需要跟在数值类型后面,否则会报错。
int(5)
5代表显示的宽度,如果有符号默认是11,如果无符号默认是10。
not null
不能为空,默认字段可以为空,如果添加了,那么此字段不能为空。
default
默认值。
primary key
主键约束(主键索引),不能为空,且唯一,用于表示数据的唯一标识。
unique
唯一约束(唯一索引),可以为空,且唯一。
auto_increment
自动递增,一般配合主键使用。
练习
创建一张表demo,
有字段id,主键;
uname,字符串类型,不能为空;
email,字符串类型,可以为空;
gender,字符串类型,不能为空,默认值为 2。
七、表结构操作
格式:ALTER TABLE 表名 操作;
添加字段-ADD
修改字段
modify:只能修改字段的类型和约束。
change:可以修改字段的类型和约束,也可以修改字段名。
1.MODITY
修改时,会将之前对该字段的约束覆盖。
!!!注意:将字符串转成数值型的时候,当前字段的值都必须是数字表示的字符串。
修改字段约束
ALTER TABLE student MODIFY phone char(11);
2.CHANGE
修改字段名和约束
ALTER TABLE student CHANGE phone aa varchar(11);
仅修改约束
ALTER TABLE student CHANGE aa aa char(11);
删除字段–DROP
修改表名–RENAME AS
修改表的编码方式
修改自增值
八、条件查询
运算符,可以用在where条件中。
格式:SELECT * FROM 表名 WHERE 条件;
练习
1.查询年龄不等于18岁的所有用户信息
2.查询班级为python的所有用户信息
3.查询年龄大于18岁的所有用户信息
4.查询年龄在18到24岁之间的所有用户信息,包含18和24岁;
方法2:
between and–在…之间,包括两端。
SELECT * FROM students WHERE age between 18 and 24;
5.查询年龄不在18到24之间的所有用户信息
方法2:
方法3:
not between and–不在…之间,不包括两端。
SELECT * FROM students WHERE age not between 18 and 24;
6.查询id值是1,3,4,6的所有用户信息
方法2:
7.查询python班和web班级的所有女生信息
九、模糊查询–like
%:任意位的任意字符
_:一位任意字符
练习
1.查询名字以‘张’开头的用户信息
2.查询emial中包含q的所有用户信息
3.查询姓名是两个字的用户信息
4.查询姓名以小开头并且是两个字的用户信息
十、聚合函数
max()
min()
count()
avg()
sum()
练习
1.统计当前表中一共有多少条数据
2.查询python班级最大年龄最小年龄以及平均
3.统计男生的数量
十一、去除重复数据–DISTINCT
1.查询所有的班级
2.查询不重复的班级和性别
十二、分组–group by
!!!注意:count(*)在分组中使用时,统计的分别是分组后每个组的数据条数。
练习
1.查询表中有哪些班级
2.统计当前表中男生和女生的人数各多少人
3.统计每个班级的人数
4.统计每个班,男生和女生各多少人
子句查询–having
只能在分组后面使用。
类似于where,但是having筛选的是分组后的数据。
练习
1.统计每个班级的人数,并查询出班级人数大于2的班级
2.查询男生人数大于1的班级
方法2:
先查询出所有的男生,再按照班级分组,然后再用having过滤。