1、什么是SQL
SQL(Structured Query Language)是“結(jié)構(gòu)化查詢語(yǔ)言”,它是對(duì)關(guān)系型數(shù)據(jù)庫(kù)的操作語(yǔ)言。它可以應(yīng)用到所有關(guān)系型數(shù)據(jù)庫(kù)中,例如:MySQL、Oracle、SQL Server等。SQ標(biāo)準(zhǔn)(ANSI/ISO)有:
這些標(biāo)準(zhǔn)就與JDK的版本一樣,在新的版本中總要有一些語(yǔ)法的變化。不同時(shí)期的數(shù)據(jù)庫(kù)對(duì)不同標(biāo)準(zhǔn)做了實(shí)現(xiàn)。雖然SQL可以用在所有關(guān)系型數(shù)據(jù)庫(kù)中,但很多數(shù)據(jù)庫(kù)還都有標(biāo)準(zhǔn)之后的一些語(yǔ)法,我們可以稱之為“方言”。例如MySQL中的LIMIT語(yǔ)句就是MySQL獨(dú)有的方言,其它數(shù)據(jù)庫(kù)都不支持!當(dāng)然,Oracle或SQL Server都有自己的方言。
2、語(yǔ)法要求
2、分類(lèi)
3、DDL
3.1 基本操作
3.2 操作數(shù)據(jù)庫(kù)
創(chuàng)建數(shù)據(jù)庫(kù),例如:CREATE DATABASE mydb1,創(chuàng)建一個(gè)名為mydb1的數(shù)據(jù)庫(kù)。如果這個(gè)數(shù)據(jù)已經(jīng)存在,那么會(huì)報(bào)錯(cuò)。例如CREATE DATABASE IF NOT EXISTS mydb1,在名為mydb1的數(shù)據(jù)庫(kù)不存在時(shí)創(chuàng)建該庫(kù),這樣可以避免報(bào)錯(cuò)。
刪除數(shù)據(jù)庫(kù),例如:DROP DATABASE mydb1,刪除名為mydb1的數(shù)據(jù)庫(kù)。如果這個(gè)數(shù)據(jù)庫(kù)不存在,那么會(huì)報(bào)錯(cuò)。DROP DATABASE IF EXISTS mydb1,就算mydb1不存在,也不會(huì)的報(bào)錯(cuò)。
修改數(shù)據(jù)庫(kù)mydb1的編碼為utf8。注意,在MySQL中所有的UTF-8編碼都不能使用中間的“-”,即UTF-8要書(shū)寫(xiě)為UTF8。
3.3 數(shù)據(jù)類(lèi)型
MySQL與Java一樣,也有數(shù)據(jù)類(lèi)型。MySQL中數(shù)據(jù)類(lèi)型主要應(yīng)用在列上。
常用類(lèi)型:
3.4 操作表
創(chuàng)建表:
CREATE TABLE 表名(
列名 列類(lèi)型,
列名 列類(lèi)型,
......
);
例如:
CREATE TABLE stu(
sid CHAR(6),
sname VARCHAR(20),
age INT,
gender VARCHAR(10)
);
再例如:
CREATE TABLE emp(
eid CHAR(6),
ename VARCHAR(50),
age INT,
gender VARCHAR(6),
birthday DATE,
hiredate DATE,
salary DECIMAL(7,2),
resume VARCHAR(1000)
);
1. 修改之添加列:給stu表添加classname列:
ALTER TABLE stu ADD (classname varchar(100));
2. 修改之修改列類(lèi)型:修改stu表的gender列類(lèi)型為CHAR(2):
ALTER TABLE stu MODIFY gender CHAR(2);
3. 修改之修改列名:修改stu表的gender列名為sex:
ALTER TABLE stu change gender sex CHAR(2);
4. 修改之刪除列:刪除stu表的classname列:
ALTER TABLE stu DROP classname;
5. 修改之修改表名稱:修改stu表名稱為student:
ALTER TABLE stu RENAME TO student;
聯(lián)系客服