【SQL】通用语法
🗓 2015年02月03日 📁 文章归类: 0x11_算法平台
版权声明:本文作者是郭飞。转载随意,标明原文链接即可。
原文链接:https://www.guofei.site/2015/02/03/SQL.html
主要 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/
您的支持将鼓励我继续创作!