MySQL入门学习笔记
SQL分类:
1.DDL 操作数据库的表
2.DML 增删改表中数据
3.DQL 查询表中数据
4.DCL 管理用户授权
开启/关闭mysql服务
net start/stop mysql服务名
连接mysql数据库
mysql -h ip地址 -u 用户名 -p 密码
输出所有存在的数据库
show databases;``
进入使用数据库
use 数据库名;
新建数据库
create DATABASE 新数据库名;
删除数据库
drop database <数据库名>;
数据库备份
mysqldump -u用户名 -p密码 数据库名 > 路径名
输出当前数据库所有的表
show tables;
查询表结构
desc 表名;
创建数据表
CREATE TABLE table_name (column_name column_type);
删除数据表
DROP TABLE table_name ;
插入/添加数据
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
查询数据
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
删除表中的记录
DELETE FROM table_name [WHERE Clause]
修改表数据
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
模糊查询 LIKE
SELECT field1, field2,...fieldN
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
需要区分符号“_”单个字符和“%”任意字符
修改数据表名或者修改数据表字段ALTER
删除表的 i 字段
ALTER TABLE table_name DROP i;
在表中添加 i 字段,并定义数据类型
ALTER TABLE table_name ADD i INT;
修改字段类型及名称.在ALTER命令中使用 MODIFY 或 CHANGE 子句......
修改表名
ALTER TABLE old_name RENAME TO new_name;
索引/约束
主键约束:primary key
非空约束:not null
唯一约束:unique
外键约束:foreign key
外键-级联操作:on update cascade
on delete cascade
1.创建表时直接定义
2.create index直接创建
CREATE INDEX indexName ON table_name (column_name)
3.修改表结构(添加索引)
ALTER table tableName ADD INDEX indexName(columnName)
多表操作
范式
1NF:
2NF:在1NF上,
3NF:在2NF上,
事务
概念:如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。
操作:
开启事务:start transaction
回滚:rollback
提交:commit
事务的四大特征:
原子性
持久性
隔离性
一致性
自动提交:
mysql就是自动提交,一条DML(增删改)语句会自动提交一次事务
手动提交:
需要先开启事务,再提交。
修改默认提交方式:set @@autocommit=1/0;
**-- 值大小为1表示自动提交,0表示手动提交
隔离级别
- read uncommitted 读未提交
- read committed 读已提交(oracle)
- repeatable read 可重复读(MySQL默认)
- serializable 串行化**
查询隔离级别:select @@isolation
设置隔壁级别:set global transaction isolation level级别字符串
–设置之后需要重新连接数据库才可生效
创建用户
create user '用户名'@'主机名' identified by '密码'
删除用户
drop user '用户名'@'主机名'
查询用户
切换到mysql数据库:use mysql
查询user表:select * from user
通配符:% 表示可以用在任意主机使用用户登录数据库
修改用户密码
update user set password=password('新密码') where user='用户名';
set password for '用户名'@'主机名' = password('新密码')
查询权限
show grants for '用户名'@'主机名'
授予权限
grant 权限列表 on 数据库名.表明 to '用户名'@'主机名'
授予超级用户权限
grant all on *.* to '用户名'@'主机名'
撤销权限
revoke 权限列表 on 数据库名.表明 form '用户名'@'主机名'