mysql的笔记

1,数据库DataBase :DB  存放数据的仓库,按照一定的数据结构来组织和存储的

分类:层次型数据库、网络型数据库、关系型数据库

2,数据库管理系统(DBMS):
    数据库和程序员之间的一个中间件,即数据库的软件:mysql、sqllite、oracle

    作用:将数据保存到内存或者文件中
    接受相应的命令,对文件进行操作

3,关系型数据库管理系统(RDBMS):建立在关系模型(二维表格)基础上的数据库,将数据以表格的形式进行存储

术语:
数据库:一些关联表的集合
表:有行和列组成的矩阵
行(记录):一组相关的数据,比如一条学生信息
列:一列包含了相同的数据,比如一列学生姓名
字段:类似于对象的属性;表格的每一列的列名或者列头
冗余:在数据库中可以不必存在但却真实存在的数据
主键:主键是用来区分表中唯一记录的字段;主键不能重复,一个表中只能包含一个主键列,主键一定是唯一的
外键:用来关联两个相关的表,一张表中引用另外一张表中的数据
主表、从表:拥有外键列的表称之为从表,而外键列对应的表为主表,删除主表的信息必须先删除从表
完整性:数据的准确性:实体完整性、参照完整性、用户定义完整性
实体完整性:主键来实现;保证某个属性一旦被定义为主键,该属性值就不能为null,并且主键值不能相同
参照完整性:外键来实现;要求关系中不允许引用不存在的实体 

注意:参照完整性和实体完整性是关系模型中必须要满足的完整性约束条件,目的是为了保证数据的一致性

用户定义完整性:用户对某一个具体的关系型数据库自定义的约束条件:如:null,not null,unique


4,sql(结构化查询语言):就是用于存储数据以及查询、更新、和管理数据库的语言

(1)DDL(数据定义语言):表结构进行操作
    create、alter、drop

(2)DCL(数据控制语言):数据库系统权限的分配及回收
(3)DML(数据操纵语言):对数据库中的数据记进行增删改查操作
    insert、update、select、delete

5,mysql

6,常用命令
show databases;查看mysql中的数据库
create database test3;创建数据库

drop database test3;删除数据库
use test3;使用某个数据库(建表、查看表之前必须使用这个命令)
show tables; 查看当前数据库中的所有的表
show columns from 表名;查看表结构
desc 表名;查看表结构
exit;退出


7,mysql数据类型
数值:
整数:tinyint(1) smallint(2) mediumint(3) int(4字节)bigint(8)
定点数:decimal(m,d) m代表代表的是数据总个数  d小数点后个数  m最大个数是65 d最大的是30 m>=d
浮点数:float(m,d)  double(m,d)

时间:
year: java.sql.Date
date:日期  java.sql.Date
time:时间    java.sql.Time    
datatime:日期加上时间 java.sql.Timestamp

字符串:
char(n):固定长度,最多255个字符,n代表的是长度
varchar(n):固定长度,最多65535
tinytext:可变长度,255个字符
text:可变长度,65535个字符
mediumtext:2的24次方-1
longtext:2的32次方-1


char和varchar:如果存入的字符数小于n,char会以空格补于其后,查询时会将空格去掉,字符创末尾最好不要有空格;
varchar存入的实际字符+1个字节 

text:不能指定长度,不能有默认值

8,mysql约束
NULL  数据列克包含NULL值
NOT NULL   数据库列不能为NULL值
DEFAULT 默认值
PRIMARY KEY 主键约束
AUTO_INCREMENT  自增特性,适用于整数类型(属于mysql特性,不属于约束)
FOREIGN KEY  外键约束
UNIQUE  唯一性约束
CHECK 检查约束  mysql可以写检查约束,但是不会执行检查约束,mysql没有检查约束


9,表操作
建表:
create table user(
    -> id int primary key not null auto_increment,
    -> name varchar(20) not null,
    -> pass varchar(20) not null);
删除表:drop table 表名;

修改表:
添加列:alter table user add 列名 数据类型 [约束条件];
删除列:alter table user drop column 列名;
修改列: alter table user modify column pass varchar(25) not null;
添加主键约束:alter table idcard add primary key(id);
添加外键约束:alter table idcard add constraint fk_uid(外键名称) foreign key 从表名(外键列名) references 主表名(主键名)

创建表时加入外键约束:
 create table idcard(
    -> id int not null primary key auto_increment,
    -> icNum int(18) not null unique,
    -> icAddress varchar(30) not null,
    -> uid int not null,
    -> foreign key(uid) references user(id)
    -> );

10,表间关系
一对一:A表B表  A表的一条记录对应B表的一条记录,反过来一样
一对多:A主表B从表  A表的一条记录对应B表的多条记录,且A表的主键作为B表的外键,以A表为中心,就是一    对多
多对一:与一对多相反,是以B表为中心,B表的对条记录对应A表的一条记录,
多对多:实现多对多一般需要一个中间(关联)表,将2张表进行关联,形成多对多的形式


11,DML
insert 插入  select 查询 update 修改 delete 删除 insert、update、delete统称为更新

增:insert into 表名[(列名1,列名2)] values(值,。。。);
删:delete from 表名[where];
改:update 表名 set 列名=新值[,列名=新值] [where。。];//改多个,第二个没有中括号,直接逗号隔开就行,中括号是为了分开理解
查:select [*][列名,列名。。] from 表名
清空表:truncate table 表名;

 

posted on 2018-11-01 18:41  鹰城鸠摩智  阅读(79)  评论(0)    收藏  举报

导航