【SQL】通用语法

主要 DDL 和 DML 语言

Select 语句见于【SQL】SELECT专题

SQL 主要有9个引导词

  • DDL 语句:Create,Alter,Drop
  • DML 语句:Insert,Delete,Update,Select
  • DCL 语句:Grant,Revoke

一、操作Database

创建数据库

CREATE DATABASE 数据库名 [其他选项];

-- 例子:
CREATE DATABASE example_1;

显示数据库

SHOW DATABASES;

删除数据库

DROP DATABASE example_1;

选择数据库

USE example;
-- 关闭数据库
CLOSE example;

二、操作Table

建表

CREATE TABLE 表名称(属性名 数据类型[约束条件],属性名 数据类型[约束条件]);

-- 例子:
CREATE TABLE `fund_data` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
 `product_alias` varchar(64) NOT NULL DEFAULT '',
 `datetimes` varchar(64) NOT NULL DEFAULT '',
 `datas` varchar(64) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=691865 DEFAULT CHARSET=utf8;

根据已有的表建新表

CREATE TABLE table_new LIKE table_old
CREATE TABLE table_new AS SELECT col1,col2 from table_old

修改表名

ALTER TABLE 旧表名 RENAME TO 新表名;

删除表

DROP TABLE tablename

显示表

-- 显示所有的表
SHOW TABLES;

-- 显示表的元信息
DESC 表名;
DESCRIBE 表名;

三、操作列

修改列

ALTER TABLE tablename
[ADD colname datatype]     -- 增加新列
[DROP colname]             -- 删除列
[MODIFY colname datatype]  -- 修改列定义

具体来说:

-- 修改列属性
ALTER TABLE 表名 
MODIFY 列名 新数据类型;

-- 修改列名/列属性
ALTER TABLE 表名 
CHANGE  旧列名 新列名 新数据类型;

-- 增加列
ALTER TABLE 表名 
ADD 列名 数据类型 [(first) after 列名2];

-- 修改列顺序
ALTER TABLE 表名 
MODIFY 列名1 数据类型 (first) after 列名2;

-- 删除列
ALTER TABLE 表名 DROP 列名1;

设置外键

ALTER TABLE 表名1  add constraint  键名  foreign key (id) references 主表 (id);

四、操作table中的数据

插入数据

INSERT [INTO] 表名 [(列名1, 列名2, 列名3, ...)] 
VALUES (1, 2, 3, ...);

-- 例1:
INSERT INTO students 
VALUES (NULL, "王刚", "男", 20, "13811371377");

-- 例2:可以只指定部分字段的值,这样未指定的字段就是默认值/空值
INSERT INTO students (name, sex, age)
VALUES ("王刚", "男", 21);

-- 例3:插入select出的数据
INSERT INTO table_name1(field1,field2,...,fieldn)
SELECT (field1,field2,...fieldn)
FROM table_name2
WHERE ...

变更数据

UPDATE 表名称 SET 列名1=取值1,列名2=取值2 WHERE ...

-- 把计算机系员工的工资上调 5%
UPDATE table_teacher 
SET salary = salary * 1.05
WHERE department = '计算机';

-- 把张三的工资设置为平均工资
UPDATE table_teacher
SET salary = (SELECT AVG(salary) FROM table_teacher)
WHERE tname = '张三'

删除数据

DELETE FROM 表名称 WHERE ...

-- 删除id为2的行:
DELETE FROM students WHERE id=2;

--删除所有年龄小于21岁的数据:
DELETE FROM students WHERE age<20;

--删除表中的所有数据:
DELETE FROM students;

参考文献

《mySQL从入门到精通》
https://wenku.baidu.com/view/f7f6e6dcd1f34693daef3e8b.html
http://www.w3school.com.cn/sql/



您的支持将鼓励我继续创作!