Mysql表操作

database

数据之表操作

创建表

语法:CREATE TABLE table_name (column_name column_type);

create table student(

-> id INT NOT NULL AUTO_INCREMENT,

-> name CHAR(32) NOT NULL,

-> age INT NOT NULL,

-> regiiter_date DATE,

-> PRIMARY KEY(id)

-> );

auto_increment 表示:自增1。写入内容为空时,默认从1,2,3...往下填充写入表格中。primary key: 表示约束(不能重复且不能为空); 加速查找not null: 不为空

查看表

show tables; -->查看有哪些表

desc student; --> 查看student表的信息

show create table student; -->查看表student创建的信息

删除表

#drop table 表名

drop table student;

修改表

1.增加

ALTER TABLE student ADD sex CHAR(32); #-->增加一列

2.删除

ALTER TABLE student DROP sex; #-->删除一列

3.修改表名

ALTER TABLE student RENAME TO students; #-->重命名

4.修改列名

ALTER TABLE students CHANGE regisiter_date register_date DATE;

#change 字段名,类型都可以改,modify只能改类型

插入数据

语法:

INSERT INTO table_name ( field1, field2,...fieldN )

VALUES

( value1, value2,...valueN );

插入数据:

mysql> INSERT INTO student(name,age,regisiter_date)

-> VALUES('derek',22,'2017-01-01');

 mysql> INSERT INTO student(name,age,regisiter_date)

-> VALUES('jack',20,'2017-03-03');

INSERT INTO student(name,age,regisiter_date) VALUES('Tom',25,'2017-05-05');

INSERT INTO student(name,age,regisiter_date) VALUES('David',25,'2017-07-07');

SELECT * FROM student; -->看表里面的内容

查看数据

语法

1.SELECT column_name,column_name

2.FROM table_name

3.[WHERE Clause]

4.[OFFSET M ][LIMIT N]

查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。

SELECT 命令可以读取一条或者多条记录。

你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据

你可以使用 WHERE 语句来包含任何条件。

你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

你可以使用 LIMIT 属性来设定返回的记录数。

语法

1.SELECT * FROM student LIMIT 2 OFFSET 2;

#limit: 查几条数据

#offset: 从第几个开始查

2.SELECT * FROM student where id>1;

#条件判断

3.SELECT * FROM student where id>1 and age<22;

#多个条件

4.SELECT * FROM student where name like "De%";

#like模糊查询

修改

update students set name = "Eric" where id=3;  

删除

delete from students where id>3;

排序

排序

select * from 表 order by 列 asc - 根据 “列” 从小到大排列

select * from 表 order by 列 desc - 根据 “列” 从大到小排列

select * from 表 order by 列1 desc,列2 asc - 根据 “列1” 从大到小排列,如果相同则按列2从小到大排

select * from students order by id desc;

#--->按id倒叙排列

分组

1.按名字分组后,并且统计名字出现的次数

select name,count(*) from students group by name;

2.按名字分组后,把年龄加起来

select name,sum(age) from students group by name;

select name,sum(age) as rename_sumage from students group by name;

#加as,可以自定义sum(age)的名字

连接

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

交集

select * from A inner join B on A.a=B.b;

差集

select * from A left join B on A.a=B.b;

select * from A right join B on A.a=B.b;

并集

select * from A left join B on A.a=B.b union select * from A right join B on A.a=B.b;

事务

begin     -->开启

insert into ...... -->要写入的内容

rollback; -->回滚到原来状态

commit; -->确认提交

以上是 Mysql表操作 的全部内容, 来源链接: utcz.com/z/532733.html

回到顶部