CRUD 增删查改
操作数据库 > 操作数据库中的表 > 操作数据库中表的数据
mysql关键字不区分大小写
CREATE DATABASE IF NOT EXISTS westos
DROP DATABASE IF EXISTS westos
日期格式:
timestamp 时间戳,1970.1.1到现在的毫秒数
null
创建数据库中的表
CREATE TABLE IF NOT EXISTS 'big' ( `id` INT(4) NOT NULL COMMENT '学号', `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名', `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码', `sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别', `birthday` DATETIME DEFAULT NULL COMMENT '出生日期', `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址', `emial` VARCHAR(50) DEFAULT NULL COMMENT '邮箱', PRIMARY KEY(`id`) )ENGINE=INNODB DEFAULT CHARSET=utf8
delete与TRUNCATE 区别
运算符 | 语法 | 描述 |
---|---|---|
IS NULL | a is null | 如果操作符为NULL,结果为真 |
IS NOT NULL | a is not null | 如果操作符不为NULL,结果为真 |
BETWEEN | a between b and c | 若a在b和c之间,则结果为真 |
LIKE | a like b | SQL匹配,如果a匹配b,则结果为真 |
IN | a in (a1,a2,a3…) | 假设a在a1,或者a2…其中的某一个值中,结果为真 |
语法 | 描述 |
---|---|
join (连接的表) on(判断的条件) | 连接查询 |
where | 等值查询 |
操作 | 描述 |
---|---|
Inner join | 如果表中至少有一个匹配,就返回行 |
left join | 即使右表中没有匹配,也会从左表中返回所有的值 |
right join | 即使左表中没有匹配,也会从右表中返回所有的值 |
左连接以左边的表为基准
右连接以右边的表为基准
自己的表和自己的表连接,核心:一张表拆成两张一样的表
SELECT select_list [ INTO new_table ] FROM table_source [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ]
show tables: show tables作用显示数据库中有哪些数据表
desc table: 作用是显示数据表的表都定义了哪些字段,及各个字段的类型大小,及哪些是主键,哪些有约束条件,以及各个字段是否定义了默认值。
--常用函数 SELECT ABS(-8) --绝对值 SELECT CEILING(9.4) --向上取整 SELECT FLOOR(9.4) --向下取整 SELECT RAND() --返回一个 0-1 之间的随机数 SELECT SIGN(10) -- 判断一个数的符号 0-0 负数返回-1,正数返回1 --字符串函数 SELECT CHAR_LENGTH('孤帆远影碧空尽') --字符串长度 SELECT CONCAT('五','角','星') --拼接字符串 SELECT LOWER('KUANG') --小写字母 SELECT UPPER('kuang') --大写字母 --时间函数 SELECT CURDATE() --获取当前日期 2022-03-01 SELECT NOW() --获取当前的时间 2022-03-01 16:25:52 --聚合函数 SELECT COUNT(studentname) FROM student; -- Count(指定列),会忽略所有的null值 速度快 SELECT COUNT(*) FROM student; -- 不会忽略null值,本质 计算行数 SELECT COUNT(1) FROM student; -- 不会忽略所有的null值 本质 计算行数 SELECT SUM(studentresult) AS 总和 FROM result; SELECT AVG(studentresult) AS 平均分 FROM result; SELECT MAX(studentresult) AS 最高分 FROM result; SELECT MIN(studentresult) AS 最低分 FROM result;
要么都成功,要么都失败
索引(index)是帮助MySQL高效获取数据的数据结构。提取句子主干,可以得到索引的本质,索引是数据结构。
规范性和性能的关系
关联查询的表不能超过三张表
排错笔记:
#1166 - Incorrect column name ‘id’
表的栏位名字后如果是有空格会报错