MySQL

来源:互联网 发布:c语言中putchar(10) 编辑:程序博客网 时间:2024/06/09 23:55

第1章 mysql

1.1 数据库概念

存储数据的仓库

1.2 数据库管理系统

 

1.3 数据表和java类的对应关系

数据-àJAVA类

数据库表字段-àjava属性

数据库表中每一条数据-à对象

 

1.4 常见的数据库

mysqlsun/oracle开始免费,被收购后就收费了

oracle:oracle公司的,收费的

db2ibm,收费

sqlserver微软的,收费的

syBase已经退出历史舞台

SQLite:小型数据库,一般用在移动端.

1.5 mysql启动服务

控制台输入:net start mysql

一般自启动,不需要去管他

1.6 登录mysql

l 明文mysql –u用户名–p密码

l 密文mysql –u 用户名 –p回车      输入密码

 

1.7 常用的数据库命令

查看所有数据库:show databases;

创建数据库:create database数据库;

create database 数据库 character set字符集;

删除数据库:drop database 数据库;

使用数据库:use 数据库;

创建数据库表:

create table (

字段 类型(长度)[约束],

字段 类型(长度)[约束],

字段 类型(长度)[约束]

);

产看数据库

show tables;

查看数据库表详情

desc 表名;

删除表:

drop table 表名;

修改表中的列

添加列:alter table  add 数据类型 [约束];

修改列:alter table  modify 数据类型 [约束];

改变和类型约束:alter table change旧列  数据类型 [约束];

删除列alter table  drop ;

改变表名:

rename table 旧表名 to 新表名

修改字符集

alter table 表名 character set 字符集

1.8 SQL语句分类

DDL数据库定义语言,操作数据库,或者数据表,不包括表中的数据

DML数据库操作语言,对表中的数据进行增加,删除,修改

DCL:数据库控制语言,用来创建用户或者设置权限等。

DQL数据库查询语言,对数据库表中的数据进行查询

 

1.9 SQL的数据类型

int 整数

double 浮点数

varchar 字符串

date  日期,只有年月日,没有时分秒

datetime 既有年月日,又有时分秒

 

1.10 数据库表数据操作

插入语句:

insert into  (字段1,字段2….) values (1,2…);

insert into  values (1,2…);

insert into 表名 (字段2,字段3) values (2,3);   字段1一般为主键,主键在插入的时候会自动增长

insert into 表名 (字段1,字段2…) values (1,2…), (1,2…), (1,2…);

 

更新语句:

update 表名 set字段=,字段=;      更新所有数据

update 表名 set字段=,字段= where条件; 更新满足条件的数据

 

删除语句:

 delete  from 表名 [where 条件]; 逐条删除,不会重置自增长记录

 truncate table 表名; 摧毁表,然后重新建一个原来的表。重置自增长记录

 

1.11 解决控制台乱码问题

控制台编码是GBKmysqlutf8就出现了乱码问题,

解决办法:修改临时编码 set names ‘gbk’;

 

1.12 查询语句

1. 查询所有

select * from 表名

2. 查询指定字段

select 字段1,字段2… from表名 [where 条件]

3. 别名查询

select 字段 [as] 别名 from 表名 [where 条件];  字段别名

select 字段1…  from 表名 [as] 别名;      表别名

4. 去重查询

select distinct 字段 from 表名;

5. 计算查询

select 字段 (做运算) from表名;

 

6. 查询条件

逻辑与: and

逻辑或: or

逻辑非: not

等于=

不等于!=  <>

大于>

小于:<

包含in     用法 in(1,2…)

区间范围内:between and    用法 between1 and 2    包含12

模糊查询:like    必须结合通配符来使用

通配符% 任意个字符

   ‘%张’ 以张结尾

   ‘%’ 张开头

   ‘%%’ 包含

    _ 一个字符

‘___’ 长度为三的

判断是否为空:IS NOT NULL 不是

  IS NULL     是

7. 排序

order by 字段 [asc]        升序

order by 字段 desc    降序

 

例如select * from product order by price desc, category_id desc;                //对商品表的价格进行降序排列,如果商品价格出现相同,就以分类ID进行降序排序

8. 聚合函数

count(字段)求有效的记录行数忽略null

sum(字段)求和对于不能求和的字段,结果是0

avg(字段):求平均值

max(字段)求最大值

min(字段):求最小值

9. 分组查询

group by 分组的字段 [having 条件]

注意:havingwhere作用是一样的,只不过,where不能放到分组后面,只能放到分组前面

 

wherehaving区别:where是放到分组前面,并且是在分组前进行查询过滤

having是放到分组的后面,在分组后进行查询

 

1.13 约束

如何创建约束

1. 在创建表时,字段声明位置的后面指定约束

2. 在创建表时,在约束区添加约束

[CONSTRAINT 约束名称约束 (字段列表)

3. 创建表以后修改表结构,添加约束

atler table 表名 add [CONSTRAINT 约束名称约束 (字段列表);

删除

alter table 表名 drop primary key;

常见的约束:

主键primary key

自动增长:auto_increment

非空约束:NOT NULL

唯一约束:UNIQUE

外键约束:FOREIGN KEY

声明外键:

alter table 从表 add [CONSTRAINT 外键名称] foreign key(从表的外键字段名 reference主表 (主表的主键

 

逻辑外键和物理外键

 

 

1.14 多表查询

交叉查询:select * from tableA,tableB.

内连接

隐式内连接:select * from tableA,tableB where 条件;

显式内连接select * from tableA inner join tableB on连接条件 where 条件..

 

外连接

左外连接select * from tableA left outer join table on条件

右外连接select * from tableA right outer join table on条件

 

连接和外连接的区别:

连接只查询条件成立的关联数据

连接查询出左边或者右边的所有数据,然后再查询另一表的关联数据,如果关联条件不成立,显示null

 

子查询

每一个查询语句,可以嵌套多个查询语句。

查询得到的结果可以当做表,也可以当做条件

优点:比较灵活。

缺点有点消耗内存

函数

LENGTH(字段)求长度

TRANCATE(字段,保留几位小数)保留小数

 

limit m,n 查询一部分

m:第几个开始。  0计算

n:查询个

0 0
原创粉丝点击