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(‘新密码’)

9315

被折叠的 条评论
为什么被折叠?



