一、简介
1、SQL:structured Query Language的缩写
中文名称:结构话查询语言
作用:是一种定义、操作、管理关系型数据库的语句。大多数关系型数据库都支持。
工业标准由ANSI(Americal national startand instruction 美国国家标准组织 ISO国际化标准组织成员)维护。
组成:
1.1、DDL:数据查询语言 Data Definition Language
作用:定义数据库或者表结构的.
关键字:create alter drop
创建一个名称为mydb1的数据库;
mysql>create database mydb1;
查看数据库的创建细节:
mysql>show create database mydb1;
创建一个使用gbk字符集的mydb2数据库
mysql>create database mydb2 character set gbk;
不要写错gbk,不要忘记结尾分号.
创建一个使用gbk字符集,并带校对规则的mydb3数据库.
mysql> create database mydb3 character set gbk collate gbk_chinese_ci;
创建表之前先选择数据库
mysql>use test;
创建一个员工表:
mysql>create table employee(
id int;
name varchar(200),
gender varchar(10),
birthday date,
entry_date date,
job varchar(200),
salary float(8,2),
resume text
);
显示数库中的表
mysql>show tables;
修改表结构:增加一个image列
mysql>alter table employee add image blob;
查看表结构:
mysql>desc employee;
修改列,使其长度为60
mysql>alter table employee modify job varchar(60);
删除列:
mysql>alter table employee drop image;
修改表名:
mysql>rename table employee to user;
查看建表细节:
修改表的字符集为gbk:
修改字段名:
mysql>alter table user change name username varchar(100);
DML: 数据操作语言 data manipulation language;
作用:操作数据库中表的数据
关键:insert update delate
mysql中特别注意:日期或字符串、字符要使用单引号引起来;
插入一条数据(插入中文报错):
mysql>INSERT INTO user (id,username,gender,birthday,entry_date,job,salary,resume) VALUES (1,'caochao','0','1907-01-10 ','2010-01-10','counter',7800,'好样的');
插入语句2:
mysql>INSERT INTO user VALUES(2,'ts','1','1990-01-10','2017-01-01','CEO',8600,'fine');
显示数据库各个字符集:
mysql>show variables like 'character%';
临时设置客户端字符集为gbk:
mysql>set character character_set_client=gbk;
设置完客户端字符集可以插入中文,但是显示时乱码如下图
需要修改结果显示字符集:
mysql>set character character_set_result=gbk;
修改表中数据:
mysql>update user set salary=11000;
带条件修改:
mysql>update user set salary=10000 where username ='方丈';
删除表中某条数据:
mysql>delect from user where username ='方丈';(一条一条删除)
mysql>truncate user;(销毁整张表,然后重建表结构);
DQL: 数据查询语言
DCL: 数据控制语言
TPL: 事务处理语言
CCL: 指针控制语言
2、SQL是有工业标准的.ANSI
符合工业标准的SQL,称之为普通话。
不同的数据库都在SQL工业标准的基础上进行扩展,扩展的部分称之为方言
不同的数据库:Oracle、DB2、SQL Server、ProstgreSQL、MySQL、Access、SQLite
3、cmd命令行登入MySql数据库如下
打开命令行:输入MySql -u root -p
输入密码之后就是这样
当然也有可能自己会忘记MySql的密码:自己电脑上有链接MySql的数据库的客户端,例如:navicate,如下图
至于如何安装 自己网上找找。
可以客户端直接修改用户密码操作步骤如下:
修改密码之后点击保存按钮。
进入mysql之后查看数据库命令:show databases;注意不要少分号
安装数据库服务器就是安装一个数据库管理程序,这个管理程序可以管理多个数据库,一般一个应用一个数据库。
一个数据库服务器可以有多个数据库,一个数据库可以有多个表。
数据库表的完整性约束:
实体完整性:每一条数据在表中都是唯一的实体,实体完整性通过表达主键来实现。
域完整性:又叫列完整性,字段必须满足字段约束条件。
多表完整性:保证一个表的外键和另一个表的主键对应。
一对多,
一个部门多个员工 一对多
多个员工属于一个部门 多对一
一个意思,不同角度出发。
mysql> create table department (
-> id int primary key ,
-> name varchar(200));
注意是圆弧括号,不是花括号。
mysql> create table employee(
-> id int primary key ,
-> name varchar(100),
-> salary float(8,2),
-> dept_id int,
-> constraint dept_id_fk foreign key(dept_id) references department(id)
-> );
注意拼写,不要写错,写漏单词。
多对多
mysql> create table teacher(
-> id int primary key ,
-> name varchar(200),
-> salary float(8,2)
-> );
mysql> create table student(
-> id int primary key,
-> name varchar(100),
-> grade varchar(10));
mysql> create table teacher_student (
-> t_id int ,
-> s_id int,
-> primary key (t_id,s_id),
-> constraint t_id_fk foreign key (t_id) references teacher(id),
-> constraint s_id_fk foreign key (s_id) references student(id)
-> );
一对一: