Mysql笔记
数据库操作
1. 数据库常用命令
1. 连接数据库
mysql-u用户名-p密码
2. 显示已有的数据库
show database
3. 创建数据库
create database sqlName
4. 选择数据库
use database sqlNaame
5. 显示数据库中的表( 先选择数据库)
show tables
6. 显示当前数据库的版本以及连接用户名
select version() ,user()
7. 删除数据库
drop database sqlName
2. 数据库表命令
1. 创建表
语法:
1 | create database sqlName( |
2. 字段约束和属性
- 非空
not null
- 默认
default
(设置默认值) - 唯一约束
unique key
- 主键约束
primary key
- 外键约束
foreign key
( 在数据库的存储引擎中InnoDB
支持外键,MyISAM
不支持外键。 ) - 添加外键约束
constraint foreign key (主表Id) references 从表(Id)
- 设置自增
auto increment=n
从n开始 - 多字段设置主键:
primary key(字段1,字段2,..)
3. 修改表
- 修改表名
alter table 旧表名 rename 新表名;
- 添加字段
*alter table 表名 add 字段名 数据类型…;(添加新的字段)*
- 修改字段
*alter table 表名 change 原字段名 新字段名 数据类型…;*
- 删除字段
*alter table 表名 drop 字段名;*
- 创建完成标后再添加主键约束
alter table 表名 add constraint 主键名 primary key 表名(主键字段)
- 创建完成标后再添加外键约束
alter table 表名 add constraint 外键名 foreign key(外键字段) references 关联表名 (关联字段)
4. 删除表
*drop table ‘tablename’*
3. 数据库操作命令
1. 新增数据
- 插入单行数据
insert into 表名 values (值列表,逗号隔开)
- 插入多行数据
insert into 表名(字段名) values ((值列表,逗号隔开),(值列表2))
- 将查询结果插入到新表中
create table 新表(select 字段1, … ,from 原表)
2. 删除数据
delete from 表名 where 删除条件
truncate table 表名 where 删除条件
3. 修改数据
update 表名 set 列名=更新值 where 更新条件
4. 查询数据
select 字段名列表 form 表名 where 约束条件 group by分组的字段名 order by 排序列名 limit 位置偏移量,行数;
where 查询条件
group by... 分组查询(字段)
having... 过滤分组的记录
limit a,b 从a开始,查询b条数据
order by 按照一定顺序进行排列,asc升序,desc降序
1. 模糊查询(like)
`SELECT * FROM student WHERE stuname LIKE '曹%' `
_ 代表一个字符 % 后面后字符 或者前面有字符
SELECT * FROM student WHERE stuname LIKE '%曹_'
SELECT * FROM student WHERE stuname LIKE '曹_'
2. 范围查询
and并且
SELECT * FROM student WHERE stuAge>15 AND stuAge<20
BETWEEN 是要包含15和20的
SELECT * FROM student WHERE stuAge BETWEEN 15 AND 20
或者
SELECT * FROM student WHERE stuAge = 15 OR stuname = '曹铁牛'
in /not in
SELECT * FROM student WHERE stuAge IN(15,16,19)
查询不为空
SELECT * FROM student WHERE stuAge IS NULL
3. 聚合函数
统计个数
SELECT COUNT(*) FROM student
求和
SELECT SUM(stuAge)/COUNT(*) FROM student
求平均值
SELECT AVG(IFNULL(stuAge,0)) FROM student
求最大值/最小值
SELECT MAX(stuAge),MIN(stuAge) FROM student
4. 子查询
- 相关子查询(不能单独查询)
SELECT *,(SELECT classname FROM class WHERE cid = classId) FROM student
- 非相关子查询(能单独查询)
SELECT * FROM student WHERE classId = (SELECT cid FROM class WHERE classname = '一班')
5. 表连接
SELECT * FROM biao1 JOIN (SELECT * FROM student s1 JOIN class c1 ON s1.cid = c1.cid) biao3 ON biao1.外键字段 = biao3.外键字段