数据库简介
数据库分类:关系型数据库、非关系型数据库
常用的关系型数据库有:orcale 、mysql 、sql server等等
常用的非关系型数据库有: Memcached、redis、mongoDB等
表类型: myIsam:除系统表外,已经很少使用
innoDB:最常用的存储引擎(支持事物、数据行级别锁定机制、外键约束、崩溃恢复等功能)
memory:只存在于内存中,可做临时表
engine=innodb 可以再表后设置数据库类型
反引号作用:如果建立表时 表名或者列名和关键字相同,就可以用反引号区分
数据类型:
数值型: 整形-128~127和浮点型0~255
字符串:
日期和时间类型
null值
涉及到钱的时候,用decimal存储
安装mysql
https://zhidao.baidu.com/question/456597557358311245.html
一、创建数据库
查看所有的数据库:show databases;
创建数据库:create database 数据库名;
create database 009 charset utf8; 创建数据库并设定该数据库的字符集
查看某库中所有的表:show tables;
指定数据库:use 数据库名;
查看表结构:desc 表名;
查看建表语句:show create table 表名;
二、表的增删改查
1、创建表
create table table1 (
-> name varchar(5) primary key,
-> age int,
-> bumen varchar(10),
-> socr int,
-> salary int,
-> bumenid int
-> )
-> ;
2、删除
①删除整个表 有两种sql语句可以删除整个表,但是效果不同
drop table table1 删除表,数据库中也不会存在该表 释放空间
truncate table table1 删除表,也释放了空间,数据库中还存在该表,且该表中的定义(列名 结构)还存在;清空表数据,不清空表结构,释放了空间 不可回退
②删除表数据
delete from table1 where。。。。 不释放空间,可以回退
3、修改表
①修改表结构 alter
增加一个字段 address
alter table table1 add address varchar(10);
删除一个字段 age
alter table table1 drop age;
给某字段更名 将字段name更名为city
alter table table1 rename name to city;
②修改表中的数据 update
将年龄为20的人的名字改为宋晓影
update table1 set name='宋晓影' where age=20;
三、表字段添加约束
1、primary key(PK) 主键约束
2、unique(UK)唯一约束
3、not null (NK)非空约束
4、auto_increment 使整数列默认自增1
5、default 1888 默认值为1888
6、foreign key(FK) 外键约束
主要是保证多个表之间的参照完整性,构建两个表两个字段之间的参照i关系,外键可以为null
创建外键约束:
constraint fk_course_teacher foreign key(teacher_id) references teacher(tid))
7、其他约束:
default cur_timestamp 创建新记录时默认保存当前时间(仅适用于timestamp数据列) timestamp: YYYYMMDDhhmmss
on update cur_timestamp 修改记录时默认保存当前时间(仅适用于timestamp数据列)
unsigned 无符号整数
character set name 指定字符集(仅适用于字符串)
5、分组与分组函数
http://blog.csdn.net/leshami/article/details/5559110
导出现有数据库数据:
- mysqldump -u用户名 -p密码 数据库名称 >导出文件路径 # 结构+数据
- mysqldump -u用户名 -p密码 -d 数据库名称 >导出文件路径 # 结构