玖叶教程网

前端编程开发入门

java数据库-MySQL(一)

数据库介绍:简而言之是保存数据的仓库,它体现我们电脑中,就是一个文件系统。然后把数据都保存这些特殊的文件中,并且需要使用固定的语言(SQL语言)去操作文件中的数据。

1.1 数据库语法

1.1.1 创建数据库

1、create database 数据库名;

2、create database 数据库名 character set 编码表名 collate 排序规则;

如:create database test1 character set utf8 collate utf8_bin;

1.1.2 查询所有数据库

1、查询当前所有的数据库:show databases;

2、查看当前数据的创建方式:查看数据库的编码表 show create database 库名;

1.1.3 修改数据库编码集

语法:alter database 数据库名称 character set 字符集 [collate 比较规则];

例:alter database test1 character set utf8;

1.1.4 删除数据库

语法:drop database 数据库名;

1.1.5 切换数据库和查看正在使用的数据库

1、切换数据库--语法: use 数据库名;

2、查询当前正在使用的数据库--语法:select database();

1.2 数据表语法

1.2.1 创建数据表

语法:create table 表名(

列名 类型(长度),

列名 类型(长度)...

);

1.2.2 mysql的数据类型

1、字符串型:Varchar、Char(一般需要制定长度)

1、数值型:tinyint 、smallint、int、bigint、FLOAT、DOUBLE (一般不需要指定,使用默认的长度)

2、日期型:DATE、TIME、DATETIME、TIMESTAMP(timestamp插入数据会自动赋值当前时间,DataTime不会)

1.2.3 查看创建表结构

语法:desc 表名;

1.2.4表创建时约束条件

1、主键约束primary key:如增加主键:Alter table 表名 add primary key(列名);

(主键必须满足1.列必须要有值2.列的值不能重复3.能唯一标示一条数据)

2、唯一约束unique

一张表唯一约束的列可以有多列,但是主键一般只会使用一列或者两列(联合主键)

3、非空约束not null:该字段的值不能为空

4、自增长auto_increment

如果表的主键是int 类型,这时可以在主键的后面添加 auto_increment ,这时表中这一列在添加数据的时候,会自动的增长

1.2.5数据表结构修改

1、增加列:alter table 表名 add 列名 类型(长度) 约束;

例:alter table test1 add name varchar(10) not null unique;

2、修改列类型、长度和约束:alter table 表名 modify 列名 类型(长度) 约束;

3、修改列名称:alter table 表名 change 旧列名 新列名 类型(长度) 约束;

4、删除列:alter table 表名 drop 列名;

5、修改表名:rename table 旧表名 to 新表名;

6、修改表的字符集:alter table 表名 character set 编码集;

7、输出数据表:drop table 表名;

8、查看库中有多少张表:show tables;

9、查看表结构:desc 表名;

1.3数据表内容操作

1.3.1插入数据

语法:insert into 表名 (列名,列名......) values (值,值......);

1.3.2修改操作

语法:update 表名 set 列名=值,列名=值.... where条件语句;

注意:如果update语句没有加上where来筛选条件,那么会修改表中所有的值

1.3.3删除操作

语法:delete from 表名 where条件语句

注意:如果删除语句不加where条件语句,那么会删除表中所有的信息

删除表中的数据时没有加where 条件,会删除表中的所有数据,它与truncate 有什么区别?

1、delete可以回退、可以有条件的删除;

2、truncate无法回退、默认表内容都删除、删除比delete快

delete from table1和 drop table table1; 有什么区别?

delete from table1:把table1表中的所有数据全部删除,但是table1的表还存在。

drop table table1:把table1数据表从数据库中删除。

1.3.4 查询

1、查询表的所有数据,语法:select * from 表名;

2、查询表中指定的列,语法:select 列名,列名... from 表名;

3、按条件查询,语法:select 列名,列名..... from 表名 where 条件;

1.4运算符

1.4.1 相等= 不等 <> !=

select * from student s where s.score !=60;

select * from student s where s.score <>60;

2、区间(between 60 and 70) 注意前面那个数要比后面那个数要小

between 60 and 70 等于score>=60 and score<=70

3、in() 相当于or的关系合并;

4、 like '模糊查询pattern' 进行模糊查询 ,表达式有两个占位符 % 任意字符串

例 select * from student where name like '%陈%';

5、is null 判断该列值为空

6、and 逻辑与 or 逻辑或 not 逻辑非

1.4.2过滤重复数据

语法:select distinct 列名 from 表名 [where 条件];

1.4.3对查询的结果进行排序

语法:select * from 表名 order by 列名 asc|desc ;

order by 分组 asc是升序排列,desc是降序排列

1.4.4 别名

语法:select 列名 as 别名,列名 as 别名.... from 表名 where 条件;

注意:在使用别名的时候,as 关键字可以省略。

1.4.5 SQL中的聚合函数

1、count函数:

语法:select count(*)|count(列名) from 表名

注意: count在根据指定的列统计的时候,如果这一列中有null 不会被统计在其中。

2、sum函数:

语法:select sum(列名) from 表名;

注意事项:1、如果使用sum 多列进行求和的时候,如果某一列中的有null,这一列所在的行中的其他数据不会被加到总和;2、可以使用mysql 数据库提供的函数 ifnull(列名,值)

3、avg函数(平均数)

语法: select avg(列名) from 表名;

4、max(),min()函数

语法:select max(score),min(score) from student;

5、group by分组函数

语法:select … from … group by 列名,列名

1.4.6 select 语句的执行顺序:

标准SQL的解析顺序为:

(1)from 子句, 组装来自不同数据源的数据

(2)where子句, 基于指定的条件对记录进行筛选

(3)group by 子句, 将子句划分为多个分组

(4)使用聚合函数进行计算

(5)使用having子句筛选分组

(6)使用order by 对结果集进行排序

(7) select将最终结果显示出来。

上述未有select语句,为了准确的说明select语句所在的位置:

(1)from 子句

(2)where 子句

(3)group by 子句

(4)having 子句

(5)order by 子句

(6)select 子句

综上:select 6 from 1 where 2 group by 3 having 4 order by 5;

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言