一、 数据库相关操作命令
1. 创建数据库:create database DBName;(分号不能少)
2. 删除数据库:drop database DBName;
二、 数据库表相关操作命令
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
复制表( 只复制结构, 源表名:a新表名:b)
SQL: select * into b from a where 1<>1 (where1=1,拷贝表结构和数据内容)
2. 插入数据
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
如果数据是字符型,必须使用单引号或者双引号,如:"value"。
拷贝表( 拷贝数据, 源表名:a目标表名:b)
SQL: insert into b(a, b, c) select d,e,f from a;
3. 修改数据: UPDATE table_name SET field1=new-value1, field2=new-value2
4. 删除数据:DROP TABLE table_name ;(删除表)
DELETE FROM table_name [WHERE Clause] (删除记录)##如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
5. 查询数据
1. 模糊查询:关键字like
查询以 java 字段开头的信息。
SELECT * FROM position WHERE name LIKE ‘java%‘;
查询包含 java 字段的信息。
SELECT * FROM position WHERE name LIKE ‘%java%‘;
查询以 java 字段结尾的信息。
SELECT * FROM position WHERE name LIKE ‘%java‘;
注:
‘%a‘ //以a结尾的数据
‘a%‘ //以a开头的数据
‘%a%‘ //含有a的数据
‘_a_‘ //三位且中间字母是a的
‘_a‘ //两位且结尾字母是a的
‘a_‘ //两位且开头字母是a的
2. Null值查询:
SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;
在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。
3. 求和,平均值,最大值,最小值(SUM,AVG,MAX,MIN)
SELECT SUM(column_name) FROM table_name(求和)
SELECT AVG(column_name) FROM table_name(平均值)
SELECT MAX(column_name) FROM table_name(最大值)
SELECT MIN(column_name) FROM table_name(最小值)
4. 排序(ORDER BY): SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC(DESC降序,ASC升序)
ORDER BY 语句用于根据指定的列对结果集进行排序。
5. 分组查询(GROUP BY..HAVING)
ELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
6. 统计(COUNT)
COUNT() 函数返回匹配指定条件的行数。
SELECT COUNT(DISTINCT column_name) FROM table_name