管理库
1.创建数据库
CREATE DATABASE db_name ;
2.选择数据库
USE db_name;
3.删除数据库
DROP DATABASE db_name;
定义表
1创建表
mysql> CREATE TABLE customers ( #创建表customers
cust_id INT NOT NULL AUTO_INCREMENT, #字段cust_id,整型,不为空,自增
cust_name CHAR(50) NOT NULL, #字段cust_name,字符型,不为空
cust_sex CHAR(1) NOT NULL DEFAULT 0, #字段cust_sex,可为空,默认为0
cust_address CHAR(50) NULL,
cust_contact CHAR(50) NULL,
PRIMARY KEY (cust_id) #定义字段cust_id为主键
);
2修改表结构 ALTER TABLE
2.1ADD子句添加
ALTER TABLE mysql_test.customers #修改库mysql_test内的表customers
ADD cust_city char(10) NOT NULL DEFAULT ‘nanjing’ #添加字段cust_city
AFTER cust_sex; #在字段cust_sex后添加,也可用FIRST来在首列添加
2.2CHANGE子句修改表中字段的名称或数据类型
ALTER TABLE mysql_test.customers
CHANGE cust_sex sex char(1) NULL DEFAULT ‘M’;
2.3DROP子句删除某个字段
ALTER TABLE mysql_test.customers DROP cust_contact;
3重命名表
ALTER TABLE mysql_test.customers RENAME TO mysql_test.customers_back; #改表customers为customers_back
RENAME TABLE mysql_test.customers_back TO mysql_test.customers; #在改回来
4删除表
DROP TABLE tb_name;
5查看表
SHOW TABLES; #显示当前库的所有表
SHOW TABLES FROM db_name; #显示db_name库的所有表
6查看表结构
DESC tb1_name;
SHOW COLUMNS FROM tb1_name;
管理表
插入数据记录
INSERT INTO
INSERT INTO customers (cust_id,cust_name,sex,cust_city,cust_address) VALUES(1,‘zhangsan’,‘M’,‘nanjing’,‘nanjing’);
INSERT INTO customers VALUES(2,‘lisi’,‘M’,‘nanjing’,‘nanjing’); #当添加字段为全部时,可省略字段名,但字段值必须按顺序排列
insert into customers set cust_name=‘lisi’,sex=‘N’;
查询数据记录
select * from customers; #查看表中所有数据
SELECT 字段名1,字段名2,… FROM 表名 WHERE 条件表达式
select cust_id,cust_name,sex from customers where id < 2; #限定查找
修改数据记录
UPDATE customers SET cust_name=‘wangwu’,sex=‘M’ where cust_id =2;
删除数据记录
DELETE FROM 表名 WHERE 条件表达式;
mysql> delete from customers where cust_id=2;
查询
select语句可以在需要时从数据库中快捷方便的检索、统计或输出数据。执行过程中从数据库选取特定行和列并将这些数据组织成一个结构集,然后以一张临时表的形式返回。
语法格式
SELECT 字段名1,字段名2,… FROM 表名 #输出指定字段
[WHERE 条件表达式] #限定条件
[GROUP BY {col_name [ASC|DESC],…] #按组计算聚合 排序
[HAVING where_condition] #组级过滤
[ORDER BY {col_name [ASC|DESC],…] #输出排序
[LIMIT {[offset,] row_count | row_count OFFSET offset}] #要检索的行数
;
1、选择指定的字段列
select cust_name,cust_sex,cust_address from customers;
2、定义并使用别名
select cust_name,cust_sex,cust_address as 地址 from customers;
3、替换查询结果集中的数据
SELECT cust_name,
CASE
WHEN cust_sex=‘M’ THEN ‘男’
ELSE ‘女’
END AS 性别
FROM customers;
4、计算列值
SELECT cust_name,cust_sex,cust_id+100 FROM customers;
5、聚合函数
mysql> select * from customers;
±--------±----------±-----±-----------±----------±-------------+
| cust_id | cust_name | sex | cust_city1 | cust_city | cust_address |
±--------±----------±-----±-----------±----------±-------------+
| 1 | zhangsan | M | nanjing | nanjing | nanjing |
| 2 | lisi | N | nanj | nj | nj |
| 3 | wangwu | N | nanj | nj | nj |
| 4 | zhaoliu | N | nanj | nj | nj |
| 7 | maqi | N | nanj | nj | nj |
±--------±----------±-----±-----------±----------±-------------+
mysql> select count() from customers; #所有行总数
±---------+
| count() |
±---------+
| 5 |
±---------+
mysql> select max(cust_id) from customers; #cust_id中最大值
±-------------+
| max(cust_id) |
±-------------+
| 7 |
±-------------+
mysql> select min(cust_id) from customers; #cust_id中最小值
±-------------+
| min(cust_id) |
±-------------+
| 1 |
±-------------+
sum 和
avg 平均
多表连接查询
select [字段1,字段2,…] from table1 join table2 on [查询条件]
mysql> select * from class;
±—±---------+
| id | NAME |
±—±---------+
| 1 | zhangsan |
| 2 | lisi |
±—±---------+
mysql> select * from info;
±—±-----+
| id | sex |
±—±-----+
| 1 | 男 |
| 2 | 女 |
±—±-----+
mysql> select * from class join info on class.id = info.id;
±—±---------±—±-----+
| id | NAME | id | sex |
±—±---------±—±-----+
| 1 | zhangsan | 1 | 男 |
| 2 | lisi | 2 | 女 |
±—±---------±—±-----+
mysql> select p.id,p.NAME,info.sex from class as p join info on p.id = info.id;
±—±---------±-----+
| id | NAME | sex |
±—±---------±-----+
| 1 | zhangsan | 男 |
| 2 | lisi | 女 |
±—±---------±-----+