MySQL 数据库一些常用操作

数据库操作

查看数据库

SHOW DATABASES

新增数据库,并设置字符集

CREATE DATABASE [IF NOT EXISTS] dbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci

使用数据库

USE db_name

删除数据库

DROP DATABASE db_name

修改数据库字符集

ALTER DATABASE db_name DEFAULT CHARSET utf8 COLLATE utf8_general_ci

表操作

新增表,并设置主键,默认值,递增,引擎,字符集等

CREATE TABLE test_tb ( 
id int(6) UNSIGNED NOT NULL AUTO_INCREMENT, 
name varchar(12) CHARSET utf8 COLLATE utf8_general_ci NULL, 
age int(3) NULL DEFAULT 18, 
PRIMARY KEY (id) 
) 
ENGINE=InnoDB 
DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci 
AUTO_INCREMENT=1;

复制表

CREATE TABLE test_tb2 SELECT * FROM test_tb
-- 或部分复制
CREATE TABLE test_tb2 SELECT id,name FROM test_tb

创建临时表

CREATE TEMPORARY TABLE test_tb

查看数据库中的表

SHOW TABLES
-- 或者查看详细结果
SHOW FULL TABLES

查看表的结构

DESCRIBE test_tb
-- 或
SHOW COLUMNS IN test_tb

表重命名

ALTER TABLE test_tb RENAME test_tb1

表中添加一列

ALTER TABLE test_tb ADD COLUMN name varchar(12) CHARSET utf8 COLLATE utf8_general_ci

表中删除一列

ALTER TABLE test_tb DROP name

修改某一列的列名

ALTER TABLE test_tb CHANGE name new_name varchar(12) CHARSET utf8 COLLATE utf8_general_ci

删除表

DROP TABLE [IF EXISTS] test_tb

数据操作

插入数据

INSERT INTO test_tb (id, age, name) VALUES (2, 21, '李四'), (3, 24, '王五')

插入检索出来的数据

INSERT INTO test_tb (name, score) SELECT age, name FROM test_tb2

查找数据

SELECT * FROM test_tb
-- 带别名的查找
SELECT name as user_name,age FROM test_tb

更新数据

UPDATE test_tb SET age=20 WHERE id=2

删除数据

DELETE FROM test_tb WHERE id=3

视图操作

创建视图

CREATE VIEW test_v AS SELECT id, name FROM test_tb

修改视图

ALTER VIEW test_v AS SELECT id, name FROM test_tb

删除视图

DROP VIEW [IF EXISTS] test_v

查看所有视图

SHOW FULL TABLES WHERE Table_type = 'VIEW'

条件语句

WHERE 语句

SELECT name FROM test_tb WHERE id=3

分组

SELECT * FROM test_tb GROUP BY age HAVING count(*) > 2

排序

-- DESC 降序,ASC 升序
SELECT * FROM test_tb ORDER BY age DESC

正则表达式查姓名以 ABCD 开头的数据

SELECT * FROM test_tb WHERE name REGEXP '^[A-D]'

UNION 查两个表的并集并限制结果为 10 条

-- union 会去重,union all 不去重
(SELECT name, age from test_tb) union (SELECT name, age from test_tb2) ORDER BY uid DESC LIMIT 10

JOIN 的用法

-- 笛卡尔积
SELECT t1.id, t2.id FROM t1 CROSS JOIN t2
-- 内连接
SELECT t1.id, t2.id FROM t1 [INNER] JOIN t2 ON t1.name = t2.name
-- 左右连接
SELECT t1.id, t2.id FROM t1 LEFT/RIGHT JOIN t2 ON t1.name = t2.name

其他相关条件控制符

=、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOT、AND 、OR、IS NULL、LIKE、LIMIT
补充:LIKE 中 % 匹配多个字符,_匹配单个字符

相关函数

数学函数

AVG、SUM、MAX、MIN、COUNT...

文本处理函数

TRIM、UPPER、LOWER、LOCATE('john',name)、POSITION('john' IN name)、LEFT(name,2)、RIGHT(name,2)、SUBSTRING(name,5,3)、CONCAT(name,'=>',age)...

时间函数

DATE、CURTIME、DAY、YEAR、NOW...
除特殊说明外本人博客均属原创,转载请注明出处:http://blog.johnhan.cn/blog_1107.html
京ICP备19044523号-1