一、常见的关系型数据库有哪些:
Mysql、SQLServer、OCACLE、DB2、HSQL、SQLite等。
二、MySQL介绍:
MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的
三、MySQL数据库服务器,数据库和表的关系:
1.所谓的安装数据库服务器,其实是在你的机器(电脑)上装了一个数据库管理程序,这个管理程序可以管理多个数 据库。(一般开发人员会针对每一个应用创建一个数据库。)
2.为了保存应用中,实体的数据。一般会在数据库中创建多个表,以保存程序中实体的数据。
3.数据库服务器,数据库和表的关系如下图
四、数据在数据库中的存储方式:
五、SQL语言:
Structured Query Language, 结构化查询语言非过程性语言。
为加强SQL的语言能力,各厂商增强了过程性语言的特征
如Oracle的PL/SQL 过程性处理能力
SQL是用来存取关系数据库的语言,具有查询、操纵、定义和控制关系型数据库的四方面功能。
六、SQL分类:
DDL (数据定义语句)
数据定义语言 - Data Definition Language
用来定义数据库的对象,如数据表、视图、索引等
DML (数据操纵语句)
数据处理语言 - Data Manipulation Language
在数据库表中更新,增加和删除记录
如 update, insert, delete — 增删改
DCL (数据控制语句)
数据控制语言 – Data Control Language
指用于设置用户权限和控制事务语句
如grant,revoke,if…else,while,begin transaction
DQL (数据查询语句)
数据查询语言 – Data Query Language
select
七、如何创建一个数据库
create database if not exists 数据库名 character set utf8;
create database if not exists mydb1 character set utf8;
八、查看所有的数据库
show databases;
九、查看数据库创建语句
show create database 数据库名;
show create database mydb1;
十、删除数据库
drop database 数据库名;
drop database mydb1;
十一、修改数据库字符集编码
alter database 数据库名 character set 字符集编码;
alter database mydb1 character set UTF8;
十二、切换数据库
use 数据库名;
use mydb1;
十三、查看当前正在使用的数据库
select database();
十四、在数据库中创建一张表。(注意在创建表之前记得use 数据库名;)
create table if not exists employee(
id int not null primary key auto_increment, #主键约束、自动增长
name varchar(50) not null, #非空约束
gender char(3),
birthday date,
entry_date date,
job varchar(255),
salary double,
resume text
);
十五、mysql常用的数据类型
1.字符串类型:
vachar、char
2.大数据类型:
blob、text
3.数值型:
tinyint、smallint、int、bigint、float、double
4.逻辑型:
bit
5.日期型:
date、time、datetime、timestamp
十六、mysql字段约束
1.非空约束:not null,保证字段的值不能为空。
name varchar(50) not null,
2.默认约束:default,保证字段总会有值,即使在插入记录的时候没有给支值,也会有默认值。
age int default 0,
3.唯一约束:unique,保证数据的唯一性,比如手机号。(和主键约束的区别是,唯一约束可以为null)
phoneNum int unique,
4.主键约束:primary key,同时保证唯一和非空。
id int primary key,
5.外键约束:foreign key,用于限制两个表的关系。
dep_id int references dep(id),
约束的添加,删除
1) 非空约束
alter table employee modify name varchar(50) not null; # 添加
alter table employee modify name varchar(50); # 删除 不写约束条件
2)默认约束
alter table employee modify salary double default 0; #添加
alter table employee modify salary double; #删除
3)唯一键约束
alter table employee modify name varchar(50) unique; #添加
alter table employee drop index name; #删除
show index from employee; #查看唯一约束
4)主键约束
alter table students modify column id int primary key; #添加
alter table employee drop primary key; #删除 约束名称(注意如果主键设置了自动增长是不能删除的)
5)外键约束
alter table employee add foreign key(dep_id) references dep(id); #添加
alter table employee drop foreign key employee_ibfk_1; #删除 约束名称
自增长列 auto_increment
id int primary key auto_increment,
一个表中有且只能有一个自增长列,自增长列一般和主键搭配
十七、修改mysql表操作
添加一列
alter table employee add 列名 列类型;
alter table employee add age int;
修改列的类型
alter table employee modify 列名 列类型;
alter table employee modify gender varchar(25);
删除列
alter table employee drop 列名;
alter table employee drop age;
修改表的名称
rename table 旧表名 to 新表名;
rename table employee to stu;
修改列的名称
alter table change 列名 新列名 列类型
alter table employee change gender sex char(3);
修改表的字符集
alter table employee character set 字符集编码;
alter table employee character set GBK;