Mysql使用入门

创建数据库

create database test1;

使用数据库

use test1;

####查看表格

show tables;

创建表

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

查看表定义

desc emp;

查看全面的表定义信息

show create table emp;

删除表

drop table emp;

修改表结构

alter table emp modify ename varchar(20);

增加表字段

alter table emp add age int(3) after ename;

删除表字段

alter table emp drop age;

修改表字段名称

alter table emp change age age1 int(4);

change可以修改表字段名称,modify不能

更改表名

alter table emp rename emp1;

插入记录

insert into emp (ename,hiredate,sal.deptno) values('kobe','2017-11-28','3000',1);

一次插入多条记录

insert into emp values('harden','2017-11-27','1000',3),('wade','2017-11-23','4000',4);

update更新多个表中的数据

注意:多表更新的语法更多的用在了根据一个表的字段动态的改变另一个表的字段。

update emp a,dept b set a.sal=a.sal*b.deptno,b.deptname=a.ename where a.deptno=b.deptno;

一次删除多个表的数据

delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno=3;

查询不重复记录,使用distinct关键字

select distinct deptno from emp;

限制查询,返回第二条开始的3条记录

select * from emp limit 1,3;

聚合查询

select deptno,count(1) from emp group by deptno;

表连接

内连接:仅选出两张表中相互匹配的数据。
外连接:选出两张表中不匹配的数据。

左连接:包含左边表中的记录甚至是右边表中没有和它匹配的记录。
右连接:包含左边表中的记录甚至是左边表中没有和它匹配的记录。
select ename,deptname from emp,dept where emp.deptno=dept.deptno;

子查询

子查询的关键字主要包括in、not in、=、!=、exists、not esists等。
select * from dept where deptno in(select deptno from emp);

记录联合

union和union all的主要区别是union会对union all的结果进行distinct,去重操作。

union all
mysql> select deptno from emp
-> union all
-> select deptno from dept;
+--------+
| deptno |
+--------+
|      1 |
|      2 |
|      1 |
|      4 |
|      1 |
|      2 |
|      4 |
+--------+
union
mysql> select deptno from emp
-> union
-> select deptno from dept;
+--------+
| deptno |
+--------+
|      1 |
|      2 |
|      4 |
+--------+

查询元数据信息

Mysql5.0之后,提供了一个新的数据information_schema,用来记录MySQL中的元数据信息。元数据指的是数据的数据,比如表名、列名、列类型、索引名等表的各种属性。

发表评论

电子邮件地址不会被公开。 必填项已用*标注