mysql数据库对表的管理_MySQL--数据库、数据表和数据的管理

数据库的管理

1、连接数据库指令:

$ mysql -u root -p   --用root用户登录数据库

提示密码后,输入密码,完成输入。

2、查看数据库指令:

mysql> show databases; --显示当前用户下的所有数据库

3、创建数据库指令:

mysql> create database test

-> default character set utf8; --创建数据库名为test的数据库,默认字符集为utf-8

4、修改数据库指令(一般只修改数据库的默认字符集)

mysql> alter database test default character set gbk; --修改数据库test的默认字符集为gbk

5、查看数据库的字符集

mysql> show create database test; --查看数据库的test的字符集

6、删除数据库指令:

mysql> drop database test; --删除数据库,数据库的名字为test

数据表的管理

1、查看数据库中含有的表

mysql> show tables;

2、创建表的指令:--创建表的时候要先切换到对应的数据库。

2.1 切换数据库指令:

mysql> use test; --切换到test数据库

2.2 创建表指令:

mysql> create tablestudent(-> id int,-> name varchar(20),-> age int

-> ); --创建student表,表中含有id,name,age三个字段。

3、查看表的详情指令:

mysql> desc student; --查看student表的表结构

4、修改表的指令:

4.1 修改表名:

mysql> alter table student rename to teacher; --把student表名改为teacher

4.2 添加表中的字段:

mysql> alter table teacher add column gender varchar(2); --在teacher表中添加gender字段

4.3 修改字段的名:

mysql> alter table teacher change gender tgender varchar(20); --把teacher表中的gender字段名改为 tgender,数据类型也改成了20个字符。

4.4 修改字段的数据类型:

mysql> alter table teacher modify tgender varchar(2); --把teacher表中的tgender的数据类型改为varchar(2)

4.5 删除字段

mysql> alter table teacher drop tgender; --删除teacher表中的tgender字段。

5、删除表

mysql> drop table teacher; --删除teacher表

数据的操作

1、插入数据

mysql> insert into student values(1,'zhangsan',20); --按照列全部插入

mysql> insert into student(id,name,age) values(1,'lisi',30); --插入指定列数据

注意:插入的时候一定要values的一定要和前面的列名一一对应,类名可以省略,省略之后代表插入所有列的数据。

2、修改数据

mysql> update student set id=2 where name='lisi'; --把名字为lisi的id给我2;

3、删除数据

mysql> delete from student; --删除表中的所有数据

mysql> delete from student where id=2;--根据条件删除数据

mysql> TRUNCATE TABLE student; --删除表中的所有数据

truncate table 和 delete from的区别:

truncate table:

1):不可以带条件删除

2):即可以删除表的数据,也可以删除表的约束

3):使用truncate table删除的数据不能回滚

delete from:

1):可以带条件删除

2):只能删除表的数据,不能删除表的约束

3):使用delete from删除的数据可以回滚(事务)

4、查看数据

4.1 查询所有列

mysql> select * from student; --查看表中的所有数据。

4.2 查询指定列

mysql> select id,name from student; --查看指定列数据。

4.3 查询是添加常量列

mysql> select id,name,age,'one levele' as 'garde' from student; --增加grade列并赋值为one levele

4.4 查询是合并列

SELECT id,NAME,(servlet+jsp) AS '总成绩' FROM student; --合并servlet 和jsp 为一列

注意:合并列只能是数值类型。

4.5 去重查询

SELECT DISTINCT gender FROMstudent;--另一种语法

SELECT DISTINCT(gender) FROM student;

4.6 条件查询--where关键字代表条件的开始

mysql> select * from student where name='zhangsan'; --根据条件查询所有列

查询时可以多条件查询:

1)逻辑条件查询: and、or

SELECT * FROM student WHERE id=2 AND NAME='李四'; --交集

SELECT * FROM student WHERE id=2 OR NAME='张三'; --并集

2)比较条件 :>   =  <=  =  <>(不等于)     between and (等价于>= 且 <=)

SELECT * FROM student WHERE jsp>=75 AND jsp<=90;--另一个语法

SELECT * FROM student WHERE jsp BETWEEN 75 AND 90; --(包前包后)

SELECT * FROM student WHERE gender<>'男';

3)判空条件:is null / is not null / =''  / <>''

SELECT * FROM student WHERE address IS NULL;--判断空字符串

SELECT * FROM student WHERE address='';SELECT * FROM student WHERE address IS NULL OR address=''; --(包括null和空字符串)

4) 模糊查询--like

通常使用以下替换标记:

% : 表示任意个字符

_ : 表示一个字符

--需求: 查询姓‘张’的学生

SELECT * FROM student WHERE NAME LIKE '李%';--需求: 查询姓‘李’,且姓名只有两个字的学生

SELECT * FROM student WHERE NAME LIKE '李_';

5) 聚合查询 --sum()  avg()  max()  min()  count()

--需求:查询学生的servlet的总成绩 (sum() :求和函数)

SELECT SUM(servlet) AS 'servlet的总成绩' FROMstudent;--需求: 查询学生的servlet的平均分

SELECT AVG(servlet) AS 'servlet的平均分' FROMstudent;--需求: 查询当前servlet最高分

SELECT MAX(servlet) AS '最高分' FROMstudent;--需求: 查询最低分

SELECT MIN(servlet) AS '最低分' FROMstudent;--需求: 统计当前有多少学生(count(字段))

SELECT COUNT(*) FROMstudent;SELECT COUNT(id) FROM student;

注意:count()函数统计的数量不包含null的数据,使用count统计表的记录数,要使用不包含null值的字段。

一般聚合查询会和分组(group by)一块使用。

6)分页查询 --limit(开始行号,每页显示行数)

--需求: 查询第1,2条记录(第1页的数据)

SELECT * FROM student LIMIT 0,2;--查询第3,4条记录(第2页的数据)

SELECT * FROM student LIMIT 2,2;--查询第5,6条记录(第3页的数据)

SELECT * FROM student LIMIT 4,2;--查询第7,8条记录 (没有记录不显示)

SELECT * FROM student LIMIT 6,2;

注意:

分页规律公式:SELECT * FROM student LIMIT (当前页-1)*每页显示多少条,每页显示多少条;

7)排序查询 -- order by 字段 asc/desc

-- asc: 顺序,正序。数值:递增,字母:自然顺序(a-z)

-- desc: 倒序,反序。数值:递减,字母:自然反序(z-a)

--默认情况下,按照插入记录顺序排序

SELECT * FROMstudent;--需求: 按照id顺序排序

SELECT * FROM student ORDER BY id ASC;SELECT * FROM student ORDER BY id; --默认正序

SELECT * FROM student ORDER BY id DESC;--反序

--注意:多个排序条件--需求: 按照servlet正序,按照jsp的倒序

SELECT * FROM student ORDER BY servlet ASC,jsp DESC;

8) 分组查询 -- group by 字段

--需求: 查询男女的人数--预期结果:

--男 3

--- 女 2

--1) 把学生按照性别分组(GROUP BY gender)

--2) 统计每组的人数(COUNT(*))

SELECT gender,COUNT(*) FROM student GROUP BY gender;

9) 分组条件查询 group by 字段 having 条件

--需求: 查询总人数大于2的性别--1) 查询男女的人数--2)筛选出人数大于2的记录(having)--- 注意: 分组之前条件使用where关键字,分组之前条件使用having关键字

SELECT gender,COUNT(*) FROM student WHERE GROUP BY gender HAVING COUNT(*)>2;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值