第十三天3月7日之MySQL基础(一)

2014-11-24 10:52:40 · 作者: · 浏览: 6

一、SQL

SQL:Structured Query Language的缩写

结构化查询语言

SQL工业标准:由ANSI(ISO(国际标准委员会international standard orgnation)核心成员)

按照工业标准编写的SQL能运行在任何数据库上。

方言:只能运行在特定数据库上的SQL语句叫做方言。

工业标准和方言:普通话和浙江话。

二、SQL语言的组成:

DDL:数据定义语言 Data Definition Language

DML:数据操作语言 Data Manipulation Language

DQL:数据查询语言 Data Query Language

TPL:事务处理语言 Transaction Process Language

DCL:数据控制语言

CCL:指针控制语言

三、基本知识

Java定义的类---------------表的结构

Java对象-------------------表中的记录

MySQL:非windows环境下是严格区分大小写的。

约定:关键字都采用小写。多个单词组成用_分割。

四、DDL

作用:定义数据库和表结构等的语句。

关键字:create alter drop truncate(摧毁)

练习:

1、DDL之数据库操作

创建一个名称为mydb1的数据库。

mysql>create database MYDB1;

查看有哪些数据库

mysql>show databases;

查看创建数据库的具体细节

mysql>show create database MYDB1;

创建一个使用gbk字符集的mydb2数据库。

mysql>create database MYDB2 characterset gbk;

创建一个使用gbk字符集,并带校对规则的mydb3数据库。

mysql>create database MYDB3 characterset gbk collate gbk_chinese_ci;

删除前面创建的mydb3数据库

mysql>drop database MYDB3;

查看服务器中的数据库,并把mydb2的字符集修改为utf8;

mysql>alter database MYDB2 character setutf8;

2、DDL之表结构

选择一个库

mysql>use MYDB1;

创建一个员工表

mysql>create table EMPLOYEE(

IDint,

NAMEvarchar(200),

GENDERvarchar(200),

BIRTHDAYdate,

ENTRY_DATEdate,

JOBvarchar(200),

SALARYfloat(8,2),

RESUMEtext

);

显示当前库中的所有表

mysql>show tables;

查看表的结构

mysql>desc EMPLOYEE;

查看表的创建细节

mysql>show create table EMPLOYEE;

在上面员工表的基本上增加一个image列。

mysql>alter table EMPLOYEE add IMAGEblob;

修改job列,使其长度为60。

mysql>alter table EMPLOYEE modify JOBvarchar(60);

删除image列。

mysql>alter table EMPLOYEE drop IMAGE;

表名改为user。

mysql>rename table EMPLOYEE to USER;

修改表的字符集为utf8

mysql>alter table USER character setutf8;

列名name修改为username

mysql>alter table USER change NAMEUSERNAME varchar(100);

五、DML:Data ManipulationLanguage

用于向数据库表中插入、删除、修改数据

常用关键字:INSERT UPDATEDELETE

在MySQL中,字符串和日期时间类型,要使用单引号引起来。

特殊值:null

练习:

使用insert语句向USER表中插入三个员工的信息。

mysql>insert into USER(ID,USERNAME,GENDER,BIRTHDAY,ENTRY_DATE,JOB,SALARY,RESUME) values(1,'wangdongxue','female','1991-09-08','2014-02-17','CEO',100000,'beautygirl');

mysql>insert into USER values(2,'wangdong','male','1990-09-08','2014-02-17','CTO',100000,'strong man');

mysql>insert into USER values (3,'查显成','男性','1988-09-08','2014-02-17','UFO',100000,'帅锅');

查看表中的所有记录

mysql>select * from USER;

查看库的所有的编码:

mysql>show variables like'character_set%';

character_set_client:指示客户端使用的字符集

mysql>set character_set_client=gbk; 通知服务器,客户端使用的是GBK字符集

character_set_results:指示显示的结果集使用的字符集

mysql>setcharacter_set_results=gbk; 通知服务器,客户端接受的结果使用的字符集为gbk

将所有员工薪水修改为5000元。

mysql>update USER set SALARY=5000;

将姓名为’查显成’的员工薪水修改为3000元。

mysql>update USER set SALARY=3000 whereUSERNAME='查显成';

将姓名为’wangdong’的员工薪水修改为4000元,job改为CEO。

mysql>update USER setSALARY=4000,JOB='CEO' where USERNAME='wangdong';

将王冬雪的薪水在原有基础上增加1000元。

mysql>update USER set SALARY=SALARY+1000where USERNAME='wangdongxue';

删除表中名称为’查显成’的记录。

mysql>delete from USER where USERNAME='查显成';

删除表中所有记录。(DML语句)

mysql>delete from USER; #一条一条的删除

使用truncate删除表中记录。 (DDL语句)

mysql>truncate USER; #删除整张表,重建的表结构

六、DQL数据查询语言

查询

关键字:select

查询表中所有学生的姓名和对应的英语成绩。(投影查询)

mysql>select NAME,ENGLISH from STUDENT;

过滤表中重复数据。

mysql>select distinct ENGLISH fromSTUDENT;

在所有学生数学分数上加10分特长分。

mysql>select NAME,MA