MySQL 命令大全 (基础)
本文章距离最后一次更新已经过去了 1979 天,文章内容可能已经变得不可靠或者版本不适配,请谨慎阅读。
基础命令
创建数据库
sql
1 | CREATE DATABASE dbname; |
删除数据库
sql
1 | DROP DATABASE dbname; |
创建新表
sql
1 | CREATE TABLE tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..); |
根据已有的表创建新表:
sql
1 | CREATE TABLE tab_new LIKE tab_old; //使用旧表创建新表 |
删除表
sql
1 | DROP TABLE tabname; |
增加一个列
注:列增加后将不能删除。DB2 中列加上后数据类型也不能改变,唯一能改变的是增加 varchar 类型的长度
sql
1 | ALTER TABLE tabname ADD COLUMN COL TYPE; |
添加和删除主键
sql
1 | ALTER TABLE tabname ADD PRIMARY KEY(col); 添加 |
创建和删除索引
索引是不可更改的,想更改必须删除重新建
sql
1 | CREATE [unique] INDEX idxname ON tabname(col….); 创建 |
创建和删除视图
sql
1 | CREATE VIEW viewname AS SELECT statement; 创建 |
修改数据库名称
sql
1 | SP_RENAMEDB 'old_name', 'new_name'; |
简单的基本的 SQL 语句
选择
sql
1 | SELECT * FROM table1 WHERE 范围; |
插入
sql
1 | INSERT INTO table1(field1,field2) VALUES(value1,value2); |
删除
sql
1 | DELETE FROM table1 WHERE 范围更新:UPDATE table1 SET field1=value1 WHERE 范围; |
查找
sql
1 | SELECT * FROM table1 WHERE field1 LIKE ’%value1%’; |
排序
sql
1 | SELECT * FROM table1 ORDER BY field1,field2 [desc]; |
总数
sql
1 | SELECT COUNT AS totalcount FROM table1; |
求和
sql
1 | SELECT SUM(field1) AS SUMVALUE FROM table1; |
平均
sql
1 | SELECT AVG(field1) AS AVGVALUE FROM table1; |
最大
sql
1 | SELECT MAX(field1) AS MAXVALUE FROM table1; |
最小
sql
1 | SELECT MIN(field1) AS MINVALUE FROM table1; |
进阶技巧
子查询 (表名 1:a 表名 2:b)
sql
1 | SELECT a,b,c FROM a WHERE a IN (select d from b ); 或者 |
外连接查询 (表名 1:a 表名 2:b)
sql
1 | SELECT a.a, a.b, a.c, b.c, b.d, b.f FROM a LEFT OUT JOIN b ON a.a = b.c; |
在线视图查询 (表名 1:a)
sql
1 | SELECT * FROM (SELECT a,b,c FROM a) T WHERE t.a > 1; |
between 的用法
between 限制查询数据范围时包括了边界值,not between 不包括
sql
1 | SELECT * FROM table1 WHERE time BETWEEN time1 AND time2; |
in 的使用方法
sql
1 | SELECT * FROM table1 WHERE a [not] IN ('值1','值2','值4','值6'); |
四表联查问题
sql
1 | SELECT * FROM a LEFT INNER JOIN b ON a.a=b.b RIGHT INNER JOIN c ON a.a=c.c INNER JOIN d ON a.a=d.d WHERE ..... |
前 10 条记录
sql
1 | SELECT TOP 10 * FORM table1 WHERE 范围; |
随机取出 10 条记录
sql
1 | SELECT TOP 10 * FROM tablename ORDER BY NEWID(); |
列出数据库里所有的表名
sql
1 | SELECT name FROM sysobjects WHERE type='U'; //U代表用户 |
列出表里的所有的列名
sql
1 | SELECT name FROM syscolumns WHERE id=object_id('TableName'); |
初始化表 table1
sql
1 | TRUNCATE TABLE table1; |
选择从 10 到 15 的记录
sql
1 | SELECT TOP 5 * FROM (SELECT TOP 15 * FROM table ORDER BY id asc) table_别名 ORDER BY id desc; |
评论