一、SQL简介
1、结构化查询语言,一种定义、操作关系型数据库的语句。
2、由ANSI管理和维护。
工业标准:绝大多数数据库都支持。(SQL99)
方言:各个数据库厂商在工业标准上进行的扩展。
原则:尽量写SQL语句与具体数据库无关。
3、SQL的组成
DQL:数据查询语言
DML:数据操作语言
DDL:数据定义语言
DCL:数据控制语言
TPL:事务处理语言
CCL:指针控制语言
二、MySQL的安装与配置
1、验证安装是否成功
C:/>mysql -u root -p
三、DDL:数据定义语言
DDL:Data Definition Language
作用:用于描述数据库中要存储的现实世界实体的语言。即创建数据库和表的结构。
常用关键字:
CREATE ALTER DROP TRUNCATE
约定:关键字小写,用户自定义的东西全部大写。多个单词组成,用下划线分隔。
语法:默认情况下,语句以分号为分界符。
大小写问题:window下MySQL不区分大小写。其他系统严格区分大小写。
1、库操作
创建一个名称为mydb1的数据库。
create database MYDB1;
查看当前有多少库。
show databases;
查看数据库的创建细节
show create database MYDB1;
创建一个使用gbk字符集的mydb2数据库。
create database MYDB2 character set gbk;
创建一个使用gbk字符集,并带校对规则的mydb3数据库。
create database MYDB3 character set gbkcollate gbk_chinese_ci;
删除前面创建的mydb3数据库
drop database MYDB3;
查看服务器中的数据库,并把mydb2的字符集修改为utf8;
alter database MYDB2 character set utf8;
2、表结构
查看当前选择的数据库
select database();
选择一个数据库
use MYDB1;
创建一个员工表
create table EMPLOYEE(
ID int,
NAMEvarchar(100),
GENDERvarchar(10),
BIRTHDAY date,
ENTRY_DATE date,
JOBvarchar(100),
SALARY float(8,2),
RESUME LONGTEXT
);
查看表结构
desc EMPLOYEE;
在上面员工表的基本上增加一个image列。
alter table EMPLOYEE add (IMAGE longblob);
修改job列,使其长度为60。
alter table EMPLOYEE modify JOBvarchar(60);
删除image列。
alter table EMPLOYEE drop IMAGE;
表名改为user。
rename table EMPLOYEE to USER;
查看当前库中的所有表
show tables;
修改表的字符集为utf8
alter table USER character set utf8;
列名name修改为username
alter table USER change NAME USERNAMEvarchar(100);
四、DML:数据操作语言
作用:用于向数据库表中插入、删除、修改数据。
常用关键字:
INSERT UPDATE DELETE(新手注意和DDL关键字的区别)
数据:
字符或字符串数据,用单引号引起来
日期或时间,用单引号引起来,日期的格式用yyyy-MM-dd
空值:null。
使用insert语句向表中插入三个员工的信息
insert into USER values(1,'niuqian','unkown','1943-09-08','2014-07-30','ceo',10000,'boy or girl');
insert into USER(ID,USERNAME,GENDER,BIRTHDAY,ENTRY_DATE,JOB,SALARY,RESUME) values (2,'niuqian','unkown','1943-09-08','2014-07-30','ceo',10000,'boyor girl');
插入中文:
insert into USER(ID,USERNAME,GENDER,BIRTHDAY,ENTRY_DATE,JOB,SALARY,RESUME) values (3,'王璐','男性','1999-09-08','2014-07-30','cto',10000,'帅锅');
编码问题:
告知服务器,客户端使用的编码是什么?
set character_set_client=gbk;
告知服务器,返回的结果用什么编码?
set character_set_results=gbk;
查看数据用到的编码情况:
show variables like 'character_set%';
将所有员工薪水修改为5000元。
update USER set SALARY=5000;
将姓名为’zs’的员工薪水修改为3000元。
update USER set SALARY=3000 whereUSERNAME='王璐';
将姓名为’aaa’的员工薪水修改为4000元,job改为ccc。
update USER set SALARY=6000,JOB='ufo' whereUSERNAME='王璐';
将wu的薪水在原有基础上增加1000元。
update USER set SALARY=SALARY+1000 whereUSERNAME='王璐';
删除表中名称为’zs’的记录。
delete from USER where USERNAME='王璐';
删除表中所有记录。
delete from USER; (逐条删除)
使用truncate删除表中记录
truncate table USER; (摧毁表格,让后重建表结构)