1.数据库增删改查 创建数据库 CREATE DATABASE IF NOT EXISTS 库名
使用数据库 USE 库名 查看数据库 SHOW DATABASES; 删除数据库 DROP DATABASE IF EXISTS 库名显示所有表 SHOW TABLES ;
2.数据表增删改查
创建数据表 CREATE TABLE 表名( 字段+数据类型 )ENGINE=INNDB CHARSET=utf8 修改表名 ALTER TABLE 旧表名 RENAME AS 新表名 添加字段 ALTER TABLE 表名 ADD 字段名 数据类型; 修改字段属性 不为空 ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL; 同时修改字段名和列属性 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新列数据类型 删除字段 ALTER TABLE 表名 DROP 字段名 显示表结构 DESC 表名 显示表创建语句 SHOW CREATE TANLE 表名 删除表 DROP TABLE 表名连接查询:
内连接 :查询两个表中的 结果中的 交集 INNER JOIN 左(外)连接 :以左表作为基准,右边表来一一匹配,匹配不上的,返回左表的记录,右表以null填充 LEFT JOIN 右(外)连接 :以右表作为基准,左边表来一一匹配,匹配不上的,返回右表的记录。左表以null填充 RIGHT JOIN单一字段排序order by 字段名称 作用: 通过哪个或哪些字段进行排序 含义: 排序采用 order by 子句,order by 后面跟上排序字段, 排序字段可以放多个,多个采用逗号间隔,order by默认采用升序(asc), 如果存在 where 子句,那么 order by 必须放到where 语句后面。
例:按照薪水由小到大排序(系统默认由小到大) 示例:select ename,sal from emp order by sal;外键添加删除 提示 : 删除具有主外键关系的表时,先删除字表,再删除主表 我创建外键约束 alter table stuent add CONSTRAINT 外键名 FOREIGN KEY(字段名) REFERENCES 表名(字段名) 删除外键 ALTER TABLE 表名 DROP FOREIGN KEY 外键名 如果还在是因为有索引 ALTER TABLE 表名 DROP index 外键名 删除索引 结构化查询分类 DDL(数据定义语言):定义和管理数据对象 例如数据库 数据表
DML(数据操作语言): 已有的字段才能插入 inster into 表名 (字段名) values(值) 更新字段 update 表名 set 字段名1=值,字段名2=值,…[WHERE 条件] 删除表中字段 delete from 表名 [WHERE 条件]
DQL(数据查询语言) : select [distinct] 字段1,字段2,.... from table [where 条件] [group by 字段] [having 条件] [order by 字段] [limit 数值,数值] DCL(数据控制语言) : grant 授予权限 commit 提交事务 rallback 回滚常用函数 日期和时间函数 NOW() #返回两个日期的天数 从1997-10-31到现在的天数 SELECT DATEDIFF(NOW(),‘1997-10-31’)
聚合函数 count 记录 sum求和 max最大 min最小 avg平均数 分组函数 grauop by desc/asc(升序) 示例 SELECT * FROM student ORDER BY studentno DESC事务的四个特性 原子性; 全部成功 一致性; 确保事务提交前后的状态 隔离性; 每个事务之间互不影响,彼此独立 持久性; 一旦提交,数据永远修改并保留
控制事务的六个步骤; 1. 关闭自动提交 SET autocommit=0
2. 开启事务 start transaction 3. 执行SQL 实现转账 UPDATE 表名 SET cash=cash-500 WHERE 'name'='A' UPDATE 表名 SET cash=cash+500 WHERE 'name'='B' 4. 模拟转账成功时,提交事务 COMMIT; #提交事务 5. 模拟转账失败时,回滚事务 ROLLBACK #回滚 6. 回复自动提交 SET autocommit=1;索引
作用;提高数据库的检索速度,改善数据库性能
分类;
唯一索引;不允许有重复的键值,但它的列允许有空值 主键索引;是唯一索引的特殊类型,他的每个值是非空,唯一 普通索引;只为那些最常出现在查询条件(WHERE)或排序条件(order by)的数据列 创建索引它的列允许插入重复值和空值 复合索引;将多个列组合作为索引 全文索引;用于在大量文本文字中搜索字符串, 他的效率大大高于sql的like关键字的效率索引增删改查; 显示索引; SHOW INDEX FROM 表名
添加索引 ALTER TABLE 表名 ADD PRIMARY KET(id); 主键 ALTER TABLE 表名 ADD UNIQUE KEY(testno) 唯一键 ALTER TABLE 表名 ADD INDEX index_cd(c,d) 常规索引 ALTER TABLE 表名 ADD FULLTEXT(e) 全文索引 删除索引 DROP INDEX 索引名 ON 表名 ALTER TABLE 表名 DROP INDEX 索引名 删除主键索引 ALTER TABLE 表名 DROP PRIMARY KEY视图
创建视图 CREATE VIEW 视图名称 AS (SELECT 语句) 删除视图 drop viem [if exists] 视图名称 查询视图 SELECT * from 视图名称 [WHERE]删除用户 DROP USER ‘用户名’@'localhost’当前本机电脑 修改当前登录密码 SET PASSWORD=PASSWORD(‘新密码’) 修改其他用户密码 SET PASSWORD FOR ‘用户名’@‘localhost’=PASSWORD(‘新密码’)