基本操作命令
1, 查看数据库列表信息
- show databases;
- MySQL> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | MySQL |
- | performance_schema |
- | sys |
- +--------------------+
- 4 rows in set (0.11 sec)
2, 查看数据库中的数据表信息
(1) 进入数据库
- use musql;
- MySQL> use musql;
- Database changed
(2) 查看数据表
- show tables;
- MySQL> show tables;
- +---------------------------+
- | Tables_in_mysql |
- +---------------------------+
- | columns_priv |
- | db |
- | engine_cost |
- | event
- ......
3, 显示表结构信息 (字段)
describe user;
(1) 其中 PRI 为主键 (不能为空)
定义 -- 确定表中唯一实体对象的标识
特点 -- 唯一性, 非空性
(2) 其中 Extra 为约束条件
- MySQL> describe user;
- +------------------------+-----------------------------------+------+-----+-----------------------+-------+
- | Field | Type | Null | Key | Default | Extra |
- +------------------------+-----------------------------------+------+-----+-----------------------+-------+
- | Host | char(60) | NO | PRI | | |
- | User | char(30) | NO | PRI | | |
- | Select_priv | enum('N','Y') | NO | | N | |
- ......
4, 创建数据库
- create database named;
- MySQL> create database auth;
- Query OK, 1 row affected (0.00 sec)
SQL 语句
QL 语言
●是 Structured Query Language 的缩写, 即结构化查询语言
●是关系型数据库的标准语言
●用于维护管理数据库, 如数据查询, 数据更新, 访问控制, 对象管理等功能
SQL 分类
●DDL: 数据定义语言
●DML: 数据操纵语言
●DQL: 数据查询语言
●DCL: 数据控制语言
典型数据库索引算法 --- 二分查找
定义: 以一个数据为参考, 比他小的放左边, 比他大的放右边.
DDL 操作命令
DDL 语句用于创建数据库对象, 如库, 表, 索引等
1. 使用 DDL 语句新建库, 表
创建数据库: creste databaes 数据库名;
- MySQL> create database auth;
- Query OK, 1 row affected (0.00 sec)
创建数据表: create table 表名 (字段定义......);
- MySQL> create table info(
- -> ID int(4) not null,
-> 姓名 varchar(8) not null,
-> 住址 varchar(10) not null,
-> 成绩 decimal default 0,
- -> primary key (ID));
- Query OK, 0 rows affected (0.01 sec)
- MySQL> desc info;
- +--------+---------------+------+-----+---------+-------+
- | Field | Type | Null | Key | Default | Extra |
- +--------+---------------+------+-----+---------+-------+
- | ID | int(4) | NO | PRI | NULL | |
| 姓名 | varchar(8) | NO | | NULL | |
| 住址 | varchar(10) | NO | | NULL | |
| 成绩 | decimal(10,0) | YES | | 0 | |
- +--------+---------------+------+-----+---------+-------+
- 4 rows in set (0.00 sec)
2. 使用 DDL 语句删除库, 表
删除指定的数据表: drop table [数据库名.] 表名
删除指定的数据库: drop database 数据库名
- MySQL> drop database auth;
- Query OK, 0 rows affected (0.05 sec)
DML 操作命令
DML 语句用于对表中的数据进行管理
包括以下操作.
●inster: 插入新数据
●update: 更新原有数据
●delete: 删除不需要的数据
1. 向数据表中插入新的数据记录
insert into 表名 (字段 1, 字段 2, .....) values(字段 1 的值, 字段的值, .....);
- MySQL> insert into info values (1,'周妹儿','南京',80);
- Query OK, 1 row affected (0.00 sec)
- MySQL> insert into info values (2,'张倩娣','南京',66);
- Query OK, 1 row affected (0.00 sec)
- MySQL> insert into info values (3,'李向阳','上海',default);
- Query OK, 1 row affected (0.02 sec)
2. 修改, 更新数据表 P F 的数据记录
update 表名 set 字段名 1 = 值 1[, 字段名 2 = 值 2] where 条件表达式;
MySQL> update info set 住址 ='南京'where ID=3;
- Query OK, 1 row affected (0.06 sec)
- Rows matched: 1 Changed: 1 Warnings: 0
3. 在数据表中删除指定的数据记录
delete from 表名 where 条件表达式;
不带 where 条件的语句表示删除表中所有记录 (谨慎操作);
- # 删除表中指定数据记录
- MySQL> delete from info where ID=2;
- Query OK, 1 row affected (0.02 sec)
- # 删除表
- MySQL> drop table info;
- Query OK, 0 rows affected (0.00 sec)
- # 删除库
- MySQL> drop database test;
- Query OK, 0 rows affected (0.00 sec)
DQL 操作命令
DQL 是数据查询语句, 只有一条: SELECT
用于从数据表中查找符合条件的数据记录
1. 查询时可不指定条件
selext 字段名 1, 字段名 2..... from 表名;
- MySQL> select * from info;
- +----+-----------+--------+--------+
| ID | 姓名 | 住址 | 成绩 |
+----+-----------+--------+--------+
| 1 | 周妹儿 | 南京 | 80 |
| 3 | 李向阳 | 南京 | 0 |
- +----+-----------+--------+--------+
- 2 rows in set (0.00 sec)
2. 查询时指定条件
select 字段名 1, 字段名 2.... from 表名 where 条件表达式;
MySQL> select 住址 from info where 住址 ='南京';
+--------+
| 住址 |
+--------+
| 南京 |
| 南京 |
- +--------+
- 2 rows in set (0.04 sec)
DCL 操作命令
1. 设置用户权限 (用户不存在时, 则新建用户)
GRANT 权限列表 ON 数据库名. 表名 TO 用户名 @来源地址 [IDENTIFIED BY '密码']
- MySQL> grant all privileges on *.* to 'root'@'%' identified by 'abc123';
- Query OK, 0 rows affected, 1 warning (0.08 sec)
2. 查看用户的权限
SHOW GRANTS FOR 用户名 @来源地址
- MySQL> show grants for 'root'@'%';
- +-------------------------------------------------------------+
- | Grants for [email protected]% |
- +-------------------------------------------------------------+
- | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
- +-------------------------------------------------------------+
- 1 row in set (0.00 sec)
3. 撤销用户的权限
REVOKE 权限列表 ON 数据库名. 表名 FROM 用户名 @来源地址
- MySQL> revoke all on *.* from 'root'@'%';
- Query OK, 0 rows affected (0.00 sec)
来源: http://www.bubuko.com/infodetail-3301530.html