创建数据库和表命令
1.创建数据库
CREATE DATABASE `school`;//第一种
CREATE DATABASE IF NOT EXISTS `school`;//第二种
- 第一种范式常规方法创建
- 第二种稳妥的做法 如果数据库没有重复再去创建
2.创建表
//第一种创建表方式
CREATE TABLE test()
//第二种创建表方式
CREATE TABLE IF NOT EXISTS test(
`id` BIGINT NOT NULL COMMENT '主键',
`name` VARCHAR(4) COMMENT '姓名',
age INT(4) COMMENT '年龄',
PRIMARY KEY (`id`) USING BTREE //id主键
)
- 在这个里面创建一个叫test的表,然后在表创建了一个字符类型的姓名长度是4和一个整形的年龄长度是4
数据库常用命令
1.增加数据命令
//第一种写法
INSERT INTO 表名 VALUES('数据1','数据2')
//第二种写法
INSERT INTO 表名('字段1','字段2') VALUES('数据1','数据2')
2.删除数据命令
//如果不带条件会批量删除
DELETE FROM 表名
//删除指定id为1001的数据
DELETE FROM 表名 WHERE id = 1001
//清空内容标识也重新开始
TRUNCATE TABLE 表名;
3.修改数据命令
//修改一般带条件修改,如果没有带条件就会修改整列的数据
UPDATE 表名 SET 字段=修改的值 WHERE 字段='条件'
4.0查询数据命令
//例如user表 里面有 id name sex age字段
// * 代表查所有
SELECT * FROM `user`
//查询指定的字段
select name,sex from `user`
//带条件进行查询
SELECT * FROM `user` where id = 10001
//模糊查询 只要包含就会查询出来
SELECT * FROM `user` where name LIKE '%李%'
//根据年龄进行排序排序默认事asc/desc是降序
SELECT * FROM `user` order by age desc
//将男生跟女生进行分组统计数量
SELECT count(1) FROM `user` group by sex
//根据字段去重
select DISTINCT `name` from `user`
4.1多表查询
//连接查询 user表 跟user_info表 其中 user_info 有一列保存user的id 是user_id
//第一种 内连接 会将user_info能匹配上的数据都查询出来
select * from `user` u inner join user_info info on u.id = info.user_id
//第二种 隐式连接 效果第一种是一致的 只是少了连接查询的关键字
select * from `user` u ,user_info info where u.id = info.user_id
//第三种 左连接 以左表的数据为主 会显示左表的全部数据,右表的数据如果能关联上也会显示
select * from `user` u left join user_info info on u.id = info.user_id
//第四种 右连接 以右表的数据为主 会显示右表的全部数据,左表的数据如果能关联上也会显示
select * from `user` u right join user_info info on u.id = info.user_id
4.2集合函数
select count(1) from 表名 //查询数量
select max(字段) from 表名 //获取最大数
select min(字段) from 表名 //获取最小数
select sum(字段) from 表名 //求和
select avg(字段) from 表名 //求平均数
5.时间函数
//获取当前时间 年 月 日 时 分 秒
select NOW();
//只要日期
select CURDATE();
//只要时间
select CURTIME();
//俩个时间比较相差多少天
select datediff(curdate(), '2021-10-01');
.....