分享一个数据库练习网站:http://sqlzoo.net/wiki/SQL_Tutorial
数据库操作
# 查看所有的数据库
SHOW DATABASES ;
# 创建一个数据库
CREATE DATABASE db;
# 删除一个数据库
DROP DATABASE db;
# 使用这个数据库
USE db;
表的创建与查询
# 查看所有的表
SHOW TABLES ;
# 创建一个表
CREATE TABLE tb(
id INT,
name VARCHAR(10),
sex VARCHAR(3)
PRIMARY KEY (id),
);
# 直接将查询结果导入或复制到新创建的表
CREATE TABLE tb2 SELECT * FROM tb1;
# 新创建的表与一个存在的表的数据结构类似
CREATE TABLE tb2 LIKE tb1;
# 创建一个临时表
# 临时表将在你连接MySQL期间存在。当断开连接时,MySQL将自动删除表并释放所用的空间。也可手动删除。
CREATE TEMPORARY TABLE tb(
id INT,
name VARCHAR(10)
);
# 直接将查询结果导入或复制到新创建的临时表
CREATE TEMPORARY TABLE tb2 SELECT * FROM tb1;
# 删除一个存在表
DROP TABLE IF EXISTS tb;
# 更改存在表的名称
ALTER TABLE tb1 RENAME tb2;
RENAME TABLE tb1 TO tb2;
# 查看表的结构(以下五条语句效果相同)
DESC tb; # 因为简单,所以建议使用
DESCRIBE tb;
SHOW COLUMNS IN tb;
SHOW COLUMNS FROM tb;
EXPLAIN tb;
# 查看表的创建语句
SHOW CREATE TABLE tb;
# 添加字段
ALTER TABLE tb ADD name VARCHAR(10) ;
# 删除字段
ALTER TABLE tb DROP name;
# 更改字段名字和属性
ALTER TABLE tb CHANGE name name2 VARCHAR(4);
# 只更改字段属性
ALTER TABLE tb MODIFY name VARCHAR(7) ;
表的数据操作
# 增加数据,如果不写字段默认一一匹配
INSERT INTO 表名 (字段名1,字段名2,字段名3)VALUES (值1,值2,值3);
# 把数据复制一遍重新插入
INSERT INTO tb SELECT * FROM tb;
# 删除数据
DELETE FROM tb WHERE id = 2;
# 更改数据
UPDATE tb SET name = 'tom' WHERE id = 2;
# 数据查找
SELECT * FROM tb WHERE name LIKE '%h%';
# 数据排序(反序)
SELECT * FROM tb ORDER BY name, id DESC ;
# 清空数据库常用(相比DELETE,会重设自增列,清空计数器,不会影响事物)
TRUNCATE tb
表的查询操作
#查询全部
SELECT * FROM tb;
#查询指定字段以及别名
SELECT `id` AS 学号,`name` AS 姓名 FROM tb;
#CONCAT(a,b,...)函数:将多个字符串连接成一个字符串
SELECT CONCAT('姓名:',name) FROM tb;
#去重
SELECT DISTINCT name FROM tb;