SQL语句基础指令语法
来源:互联网 发布:数据不会说谎 编辑:程序博客网 时间:2024/06/05 04:55
SQL语句基础指令语法
- SQL语句基础指令语法
- 显示命令
- DDL语句
- CREATE
- DROP
- ALTER
- DML语句
- INSERT
- DELETE
- UPDATE
- DCL语句
- GRANT
- REVOKE
- DQL语句
- SELECT
- SQL语句基础指令语法
显示命令
显示当前数据库服务器中的数据库列表
mysql> SHOW DATABASES;
显示数据库中的数据表
mysql> USE 数据库名 #切换数据库mysql> SHOW TABLES;
显示数据表的结构
mysql> DESCRIBE 表名;
mysql> DESC 表名;
查看支持的字符集
mysql> SHOW CHARACTER SET;
查看支持的排序规则
mysql> SHOW COLLATION;
查看支持的引擎
mysql> SHOW ENGINES\G; #\G以行的形式显示
查看表中的索引
mysql> SHOW INDEXES FROM 表名\G;
查看表状态
mysql> SHOW TABLE STATUS LIKE '表名'\G;
DDL语句
DDL:数据的定义语言(Data Defination Language)
CREATE
创建用户
mysql> CREATE USER root@'172.18.%.%' IDENTIFIED BY 'password';
创建数据库
mysql> CREATE DATABASE 数据库名1;mysql> CREATE SCHEMA 数据库名2;mysql> CREATE DATABASE IF NOT EXISTS 数据库名3;
创建一个同表1相同的表2
mysql> CREATE TABLE 表2 SELECT * FROM 表1;
创建表
mysql> CREATE TABLE 表名 (id tinyint unsigned PRIMARY KEY,name varchar(20) NOT NULL, age tinyint UNSIGNED, sex char(1) DEFAULT "m" );
创建带有复合主键的表
mysql> CREATE TABLE 表名 (id int unsigned NOT NULL, name varchar (20) NOT NULL, age tinyint unsigned, sex char(1) DEFAULT "m", PRIMARY KEY(id,name));
创建索引
mysql> CREATE INDEX 索引名 ON 表名(索引字段);
DROP
删除用户
mysql> DROP USER root@'172.18.%.%;
删除数据库
mysql> DROP DATABASE 数据库名;mysql> DROP SCHEMA 数据库名;mysql> DROP DATABASE IF EXISTS 数据库名;
删除表
mysql> DROP TABLES 表名;
删除索引
mysql> DROP INDEX 索引名 ON 表名;
ALTER
修改表名
mysql> ALTER TABLE 旧表名 RENAME 新表名;
表中插入字段
mysql> ALTER TABLE 表名 ADD 字段名 char(11) AFTER 插入位置的前一个字段名;
修改字段数据类型
mysql> ALTER TABLE 表名 MODIFY 字段名 新数据类型;
修改字段名称
mysql> ALTER TABLE 表名 CHANGE COLUMN 旧字段 新字段 char(11);
添加唯一键
mysql> ALTER TABLE 表名 ADD UNIQUE KEY(字段名);
添加指定枚举值的字段
mysql> ALTER TABLE 表名 ADD 字段名 ENUM('值1','值2');
添加索引
mysql> ALTER TABLE 表名 ADD INDEX(字段名);
删除字段
mysql> ALTER TABLE 表名 DROP COLUMN 字段名;
DML语句
DML:数据的处理语言(Data Manipulation Language )
INSERT
赋值表中全部字段
mysql> INSERT INTO 表名 (字段1,字段2,字段3,字段4)VALUES(值1,'值2',值3,'值4');
赋值表中指定字段
mysql> INSERT INTO 表名 (字段1,字段2)VALUES(值1,'值2');
省略字段名称赋值
mysql> INSERT INTO 表名 VALUES (值1,'值2',值3,'值4');
同时为多条记录赋值
mysql> INSERT INTO 表名 VALUES (值1,'值2',值3,'值4'),(值1,'值2',值3,'值4');
向表2中追加表1字段的值,前提表2已经存在,且与表1表结构相同
mysql> INSERT INTO 表2 SELECT * FROM 表1;
DELETE
清空表的内容
mysql> TRUNCATE TABLE 表名; #速度快,但不记录日志mysql> DELETE FROM 表名; #速度稍慢,但会记录日志
删除记录
mysql> DELETE FROM 表名 WHERE id=4;
UPDATE
注意:更改时不要忘记敲WHERE子句,不然会改掉全部记录对应字段的值
更改指定记录某字段的值
mysql> UPDATE 表名 SET age=21 WHERE name='li';
同时更改一条记录多个字段的值
mysql> UPDATE 表名 SET age=19,sex='m' WHERE id=5;
DCL语句
DCL:数据授权语言(Data Control Language)
GRANT
授权用户指定权限
mysql> GRANT SELECT,INSERT ON 数据库名.表名 TO root@'172.18.%.%';mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO user@'localhost';
授权用户全部权限
mysql> GRANT ALL ON 数据库名.* TO root@'172.18.%.%';
授权并创建用户
mysql> GRANT ALL ON *.* TO wang@'172.18.%.%' IDENTIFIED BY "password"; mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO user@localhost IDENTIFIED BY ""; #设置空口令
REVOKE
取消指定授权
mysql> REVOKE SELECT,INSERT ON 数据库名.* FROM root@'172.18.%.%';
取消授权
mysql> REVOKE ALL ON 数据库名.* FROM root@'172.18.%.%';
DQL语句
DQL:数据查询语言(Data Query Language)
SELECT
查询数据库名
mysql> SELECT DATABASE();
查询当前数据库版本
mysql> SELECT VERSION();
查看当前登录的用户
mysql> SELECT USER();
查询表中全部字段
mysql> SELECT * FROM 表名;
查询表中指定字段
mysql> SELECT 字段1,字段2,字段3 FROM 表名;
为搜索字段添加别名
mysql> SELECT id AS 员工编号,name AS 姓名 FROM 表名;
为表名添加别名
mysql> SELECT 字段1,字段2 FROM 表名 AS 表别名;
查寻指定区间内的字段
mysql> SELECT * FROM 表名 WHERE 字段 >=18 and 字段 <=20;mysql> SELECT * FROM 表名 WHERE 字段 BETWEEN 18 字段 20;
对查询的指定字段进行排序
mysql> SELECT * FROM 表名 WHERE 字段1 BETWEEN 16 字段1 22 ORDER BY 字段1;mysql> SELECT * FROM 表名 WHERE 字段1 BETWEEN 16 字段1 22 ORDER BY 字段1 DESC; #倒序排
跳过一个显示两个
mysql> SELECT * FROM 表名 WHERE 字段1 BETWEEN 16 字段1 22 ORDER BY 字段1 LIMIT 1,2;
通配符的模糊查询
mysql> SELECT * FROM 表名 WHERE name LIKE "l%" ;
正则表达式的模糊查询
mysql> SELECT * FROM 表名 WHERE name RLIKE "l.*" ;mysql> SELECT * FROM 表名 WHERE name RLIKE "^l.$" ;
查询空值
mysql> SELECT * FROM 表名 WHERE age IS NULL;
查询非空值
mysql> SELECT * FROM 表名 WHERE age IS NOT NULL;
查询某字段的特定值
mysql> SELECT * FROM 表名 WHERE 字段名 IN ('值1','值2');
多表查询
mysql> SELECT s.id,e.name FROM 表名1 AS s,表名2 AS e WHERE s.id=e.id;mysql> SELECT s.id,e.name FROM 表名1 AS s,表名2 AS e WHERE s.id=e.id and s.name RLIKE '.*[no].*';
阅读全文
0 0
- SQL语句基础指令语法
- SQL语法,SQL语句大全,SQL基础
- SQL语法,SQL语句大全,SQL基础
- SQL语法,SQL语句大全,SQL基础
- SQL语法,SQL语句大全,SQL基础
- SQL语法,SQL语句大全,SQL基础
- SQL语法,SQL语句大全,SQL基础
- SQL语法,SQL语句大全,SQL基础
- SQL server 基础语法语句大全 T-SQL解析
- SQL指令语法
- SQL语句语法
- SQL查询语句语法
- SQL语句常用语法
- sql语法语句大全
- 动态SQL语句语法
- SQL语句语法
- 动态SQL语句语法
- 动态SQL语句语法
- 数据结构之栈与队列
- 链表问题——打印两个有序链表的公共部分
- 坚持#第192天~云计算原来是用来保存数据的
- 杭电acm2133 今天星期几
- eclipse安装过程的一些问题及解决方法
- SQL语句基础指令语法
- 牛客网 剑指offer-调整数组顺序使奇数位于偶数前面
- [leetcode] 100. Same Tree
- linux基本命令笔记
- 前端基础知识汇总
- ==和equals方法区别究竟在哪?
- Week3 207. Course Schedule
- 线段树合并 [HNOI2012]永无乡
- Lovekey(大数)