当前位置:   article > 正文

mysql javaweb报告_Java Web总结十一MySql数据库

创建一个使用utf8字符集名称为mydb1的数据库。

登录MySQL数据库的命令:在windows命令窗口下输入:mysql -u root -p回车后再输入密码。

一、创建数据库

1、语法:create database [if not exists] db_name [character set] [collate];

2、相关解释:1)character set:指定数据库采用的字符集。

2)collate:指定数据库字符集的比较方式、规则,比如排序。

3、案例:

1)创建一个名称为mydb1的数据库。

create database if not exists mydb1;

2)创建一个使用utf8字符集的mydb2数据库。

create database if not exists mydb2 character set utf8;

3)创建一个使用utf8字符集,并带校对规则的mydb3数据库。

create database if not exists mydb3 character set utf8 collate utf8_general_ci;

二、查看、删除数据库

1、显示所有数据库:

show databases;

2、显示某个数据库的创建语句:

show create database db_name;

3、使用某一个数据库:

use db_name;

4、数据库删除语句:

drop database [if exists] db_name;

5、案例:

1)查看当前数据库服务器中的所有数据库。

show databases;

2)查看前面创建的mydb2数据库的定义信息。

show create database mydb2;

3)删除前面创建的mydb1数据库。

drop database if exists mydb1;

三、修改、备份、恢复数据库数据

1、修改数据库

1)语法:alter database db_name [character set] [collate];

2)注意:修改数据库只能修改数据库的编码和校对规则,不能修改数据库的名字。

2、备份数据库表中的数据

首先退到window命令行窗口,然后输入以下语句:

mysqldump -u 用户名 -p 数据库名 > D:\文件名.sql

3、恢复数据库

首先进入mysql控制台,输入以下命令:

source d:\文件名.sql

4、案例:

1)查看服务器中的数据库,并把其中mydb3库的字符集修改为utf8。

alter database mydb3 character set utf8;

2)备份mydb2数据库中的数据,并恢复。

1、退到Window命令行窗口输入:mysqldump -u root -p mydb2 > D:\mydb2.sql

2、进入MySQL数据库服务器:mysql -u root -p

3、执行恢复操作:source d:\mydb2.sql

四、创建表

1、注意:创建表前,要先使用use dbname语句使用库。

2、语法:

create table table_name (field1 datatype,field2 datatype,field3 datatype) character set 字符集 collate 校对规则;

3、解释:field:指定列名  datatype:指定列类型。

4、案例:

创建一个员工表,并指明字符集为utf8。包括以下字段和对应的数据类型:id:整型;name:字符型;sex:字符型;birthday:日期型;entry_date:日期型;job:字符型;salary:小数型;resume:大文本型。

create table employee (id int,name varchar(50),sex char(2),birthday date,entry_date datetime,job varchar(100),salary float,resume text) character set utf8;

5、显示表的所有字段和数据类型信息:desc table_name。

五、修改表

1、增加列:

alter table table_name add (column_name datatype);

2、修改列:

1)修改列的数据类型:alter table table_name modify (column_name datatype);

2)修改列的名称:alter table table_name change column 原列名 新列名 数据类型;

3、删除列:

alter table table_name drop column_name;

4、修改表的名称:

rename table 原表名 to 新表名

5、修改表的字符集:

alter table student character set utf8;

6、案例:

1)在员工表的基础上增加一个image列。

alter table employee add image varchar(20);

2)修改job列,使其长度为60。

alter table employee modify job varchar(60);

3)删除sex列。

alter table employee drop sex;

4)表名改为user。

rename table employee to user;

5)修改表的字符集为utf8。

alter table user character set utf8;

6)列名name修改为username。

alter table user change column name username varchar(20);

六、解决windows平台,中文正确输入和输出的方法

1、显示所有以character开头的变量:show variables like 'character%';

2、修改character_set_client为:set character_set_client=gbk;

3、修改character_set_results为:set character_set_results=gbk;

4、这样的修改只有在当前窗口中有效。

七、数据库的CRUD语句

1、insert语句

1)语法:insert into table_name(column_name) values(value);

2)注意:

a、字符和日期型数据应包含在单引号中。

b、插入空值,不指定或insert into table_name value(null);

c、如果要插入中文,先按上面第六步进行处理。

2、update语句

1)语法:update table_name set column_name=value where 条件

2)案例:

1、将所有员工薪水修改为5000。

update user set salary=5000;

2、将姓名为“张晓明”的员工薪水修改为6000元。

update user set salary=6000 where username='张晓明';

3、将“张晓明”的薪水在原有的基础上增加1000元。

update user set salary=salary+1000 where username='张晓明';

3、delete语句

1)语法:delete from table_name where 条件;

2)注意:使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。

删除表中数据也可使用truncate table语句,它和delete语句有所不同。

3)案例:使用truncate删除表中记录。

truncate table user;

4、select语句

1)语法:select [distinct] * | {column1,column2,...} from table_name;

2)解释:distinct可选,指显示结果时,是否剔除重复数据。

3)案例:

1、查询表中所有学生的信息。

select * from student;

2、查询表中所有学生的姓名和对应的英语成绩。

select name,english from student;

3、过滤表中的重复数据。

select distinct * from student;

4)在select语句中课使用表达式对查询的列进行运算。

5)在select语句中可使用as语句。

select column_name as 别名 from 表名;

6)案例:

1、在所有学生基础上加10分特长分。

select name, chinese+10,english+10,math+10 from student;

2、统计每个学生的总分。

select name,chinese+english+math from student;

3、使用别名表示学生分数。

select name,chinese+english+math as 总分 from student;

7)模糊查询like的用法:

1、%代表零个或多个任意字符;

2、_代表一个字符

8)案例:

1、查询英语分数在80-90之间的学生。

select * from student where english between 80 and 90;

2、查询数学分数为89,90,91的同学。

select * from student where math in(89,90,91);

3、查询所有姓“李”的学生成绩。

select * from student where name like "李%";

4、查询数学分>80且语文分>80的同学。

select * from student where math>80 and chinese>80;

9)使用order by子句排序查询结果。

1、语法:select column1,column2,...from table_name order by column_name asc | desc;

2、order by指定排序的列,排序的列既可以是表中的列名,也可以是select子句后指定的列名。

3、asc:升序;desc:降序。

4、order by子句位于select语句的结尾。

5、案例:

(1)对数学成绩排序后输出。

select * from student order by math desc;

(2)对总分排序后输出。

select name,math+chinese+english as 总分 from student order by 总分 desc;

(3)对姓“李”的学生总分排序输出。

select name,chinese+math+english as 总分 from student where name like '李%' order by 总分 desc;

10)使用group by子句对列进行分组:

1、语法:select column1,column2,...from table_name group by column_name;

2、案例:

对订单表中商品归类后,显示每一类商品的总价。

select product ,sum(price) as 总价 from orders group by product;

11)使用having子句组过滤

1、语法:select column1,column2,...from table_name group by column_name having ...;

2、案例:

查询购买了几类商品,并且每类总价大于100的商品。

select product,sum(price) from orders group by product having sum(price)>100;

12)having和where均可实现过滤,但在having可以使用合计函数,having通常跟在group by后,它作用于组。

八、函数

1、合计函数count()

1)语法:select count(*) | count(列名) from table_name [where条件];

2)count(列名)返回某一列,行的总数,除null外。

3)案例:

a、统计一个班级共有多少学生?

select count(*) from student;

b、统计数学成绩大于80的学生有多少个?

select count(math) from  student where math>80;

c、统计总分大于250的人数有多少个?

select count(*) from student where math+chinese+english>250;

2、合计函数sum()

1)语法:select sum(列名) {,sum(列名),...}from table_name where 条件。

2)sum函数返回满足where条件的行的总和。

3)sum仅对数值起作用;对多列求和,“,”不能少。

4)案例:

a、统计一个班级数学总成绩。

select sum(math) from student;

b、统计一个班级语文、数学、英语各科的总成绩。

select sum(chinese) as 语文总成绩,sum(math) as 数学总成绩,sum(english) as 英语总成绩 from student;

c、统计一个班级语文、数学、英语的成绩总和。

select sum(chinese+math+english) as 三门课成绩总和 from student;

d、统计一个班级语文成绩平均分。

select sum(chinese)/count(*) as 语文平均成绩 from student;

3、平均函数avg()

1)语法:select avg(列名){,avg(列名),...} from table_name where 条件;

2)avg()函数返回满足where条件一列的平均值。

3)案例:

a、求一个班级数学平均分。

select avg(math) as 数学平均分 from student;

b、求一个班级的总分平均分。

select avg(chinese+math+english) from student;

4、最大最小值函数max()/min()

1)语法:select max(列名) from table_name where 条件。

2)max/min函数满足where条件的一列的最大/最小值。

3)案例:

a、求班级最高分和最低分。

select max(math+english+chinese) as 最高分,min(chinese+math+english) from student;

九、定义表的约束

1、primary key:不允许为空,不允许重复。

删除主键:alter table table_name drop primary key;

2、定义主键自动增长

auto_increment(MySQL特有/UUID类生成)。

3、定义唯一约束:unique

4、定义非空约束:not null

5、定义外键约束:

constraint ordersid_FK foreign key(ordersid) references orders(id);

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/869495
推荐阅读
相关标签
  

闽ICP备14008679号