1.1简单sql命令操作
select version();
查看本地所有的数据库
show database;
//查什么写什么
select ‘xxxx’;
//切换数据库
use test;
//查看所有的表
show tables;
//退出
Exit
1.2用户的创建和授权
1.2.1创建用户 CREATE USER ‘username’@‘host’ IDENTIFIED BY’password’;
需要切换到mysql数据库下,操作user表
username:用户名; host:指定在哪个主机上可以登录,本机可用localhost,%通配所有远程主机;password:用户登录密码;
1.2.2授权:GRANT ALL ON ‘’.’’ TO ‘username’@’%’ ;
刷新权限:FLUSH PRIVILEGES;
格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by “用户密码”;.代表所有数据库和所有表;
@ 后面是访问MySQL的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)。
如 GRANT ALL ON 21. TO ‘tianliang’@’%’ ;
把 _21_数据库的操作权限,授权给tianliang用户
All 是所有权限
GRANT select,insert,update,drop,create,delete ON 21. TO ‘c’@’%’ ;
上面是同时设置查询,添加,更新等操作
当然 也可以只写select , 是只能查询
Select 查询
Insert 插入数据
Update 更新数据
Delete 删除数据
Drop 删除表
Create 创建表
撤销授权
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:
1.3SQL的分类
DCL数据控制语言(Data Control Language)
代表关键字:grant,revoke.
DDL数据定义语言(Data Definition Language)
代表关键字:create ,drop,
DML数据操作语言(Data Manipulation Language)
代表关键字:insert,delete,update
DQL数据查询语言(Data Query Language)
代表关键字:select
TCL事务控制语言(Transactional Control Language)
代表关键字:commit ,rollback;
1.3.1DDL数据定义语言
1)数据库创建删除
Create ,drop
2)数据库中表的创建删除
语法:create table XXX(
列表 类型,
列表 类型,
…
);
存储引擎 :
MyISAM
InnoDB
注意点:
反引号,命名的重要性 当使用了关键字,所有的操作都需要加
,很麻烦
如果存在表:if not exists
CREATE TABLE student_info1
(
student_name
varchar(255) DEFAULT NULL,
student_age
int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE if not exists student_info
(
student_name
varchar(255) DEFAULT NULL,
student_age
int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE student_info3
(
student_name
varchar(255) DEFAULT NULL,
student_age
int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1.3.2DML(数据操作语言)
DML : Data Manipulate Language(数据操作语言) ,主要用于向数据库插入,修改,删除数据使用
涉及的关键字有 : insert delete update
1)insert
格式:
insert into 表名(列名1,列名2)values(值1.值2);
insert into student info(student_name,student_age)values(‘瑞行’,23);
2)Update
格式:
update 表名 set 列名 1 = 值,列名 2 = 值 where 列名 = 值;
update student_info set student age =66 where student_name = ‘瑞行’;
3)Delete
格式
delete from 表名 where 列名 = 值;
delete from student_info where student_name=‘瑞行’;
1.3.3DQL(数据查询语言)
格式:
select 列限定 from 表限定 where 行限定
select student_name from student_info where student_age=23;
select * from student_info;