您的位置:首页 > 数据库 > MySQL

mysql常用的增删改操作

2016-06-28 08:51 423 查看

连接数据库:

mysql -u username -p passwd

创建表:

CREATE DATABASE dbname

选择数据库:

USE dbname

查看数据库中创建的所有数据表:

show tables;

删除数据库:

drop database dbname;

创建表:

CREATE TABLE tablename (column_name_1 column_type_1 constraints, column_name_2 column_type_2 constraints , ……column_name_n column_type_nconstraints)

eg:create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));

查看表的定义:

DESC tablename

查看创建表的sql语句:

show create table tablename \G; # (‘\G’ 居中显示)

删除表:

drop table tablename

修改表:

ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]

增加表字段:

ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]

删除表字段:

ALTER TABLE tablename DROP [COLUMN] col_name

字段改名:

ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST | AFTER col_name]

注意:

change 和 modify 都可以修改表的定义,不同的是 change 后面需要写两次列名,不方便。但是 change 的优点是可以修改列名称, modify 则不能。

表改名:

ALTER TABLE tablename RENAME [TO] new_tablename

DML语句:

1、插入记录:

INSERT INTO tablename (field1,field2,......fieldn) VALUES(value1,value2,......valuesn);
eg:
insert into emp (ename,hiredate,sal,deptno) values('zzx1','2000-01-01','2000',1);
# 一次性插入多条记录:
INSERT INTO tablename (field1, field2,......fieldn)
VALUES
(record1_value1, record1_value2,......record1_valuesn),
(record2_value1, record2_value2,......record2_valuesn),
......
(recordn_value1, recordn_value2,......recordn_valuesn)


2、更新记录:

UPDATE tablename SET field1=value1,field2.=value2,......fieldn=valuen [WHERE CONDITION]
eg:
update emp set sal=4000 where ename='lisa';

# 同时更新多表的记录:
eg:同时更新表 emp 中的字段 sal 和表 dept 中的字段 deptname
update  emp a, dept b set a.sal=a.sal*b.deptno,b.deptname=a.ename where a.deptno=b.deptno;


3、删除记录:

DELETE FROM tablename [WHERE CONDITION]
eg:delete from emp where ename='dony';

# 同时删除多表记录:
DELETE t1,t2...tn FROM t1,t2...tn [WHERE CONDITION]
eg:将表 emp 和 dept 中 deptno 为 3 的记录同时都删除:
delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno=3;


4、查询记录:

SELECT * FROM tablename [WHERE CONDITION]

# 排序和限制:
SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1 [DESC|ASC] , field2  [DESC|ASC],......fieldn [DESC|ASC]]
LIMIT:限制显示的记录数
SELECT ......[LIMIT offset_start,row_count]

# 聚合:
SELECT [field1,field2,......fieldn] fun_name
FROM tablename
[WHERE where_contition]
[GROUP BY field1,field2,......fieldn
[WITH ROLLUP]]
[HAVING where_contition]

fun_name  表示要做的聚合操作,也就是聚合函数,常用的有 sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。
GROUP BY  关键字表示要进行分类聚合的字段,如要按照部门分类统计员工数量,部门就应该写在 group by 后面。
WITH ROLLUP  是可选语法,表明是否对分类聚合后的结果进行再汇总。
HAVING  关键字表示对分类后的结果再进行条件的过滤。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql