笔记-JavaWeb学习之旅2
數據庫的基本概念
1.數據庫:DataBase 簡稱 DB,用于存儲和管理數據的倉庫
特點:
1.持久化存儲數據的,其實數據庫就是一個文件系統,
2.方便存儲和管理數據
3.使用了統一操作數據庫 --SQL
SQL通用語法
SQL語句可以單行或多行書寫,以分號結尾
可使用空格和縮進來增強可讀性
MySQL數據庫的SQL語句不區分大小寫,關鍵字建議大寫
3種注釋
單行注釋: -- 注釋內容 或 # 注釋內容
多行注釋 :/* 注釋*/
SQL分類:
DDL:操作數據庫、表
操作數據庫
C(Create):創建
創建數據庫 create database 數據庫名稱;
創建數據庫,判斷不存在在創建
? create database if not exists 數據庫名稱;
創建數據庫,并制定字符集
? create database 數據庫名稱 character set 字符集名:
R(Retrieve):查詢
查詢所有數據庫的名稱
? show databases;
查詢某個數據庫的字符集:
? show create database 數據庫名稱;
U(Update):修改
修改數據庫的字符集
? alter database 數據庫名稱 character set 字符集名稱;
D(Delete):刪除
刪除數據庫
? drop database 數據庫名稱;
判斷數據庫存在,存在再刪除
? drop database if exists 數據庫名稱;
使用數據庫
查詢當前正在使用的數據庫名稱
? select database();
使用數據庫
? use 數據庫名稱;
操作表
C(Create):創建
語法:
create table 表名(
? 列名1 數據類型1,
? 列名2 數據類型2,
? .....
? 列名n 數據類型n
);
注意:最后一列,不需要加逗號
數據庫常用類型:
復制表:create table 新的表名 like 被復制的表名;
R(Retrieve):查詢
查詢某個數據庫中所有的表名 show tables;
查詢表結構
? desc 表名;
U(Update):修改
修改表名
? alter table 表名 rename to 新的表名;
修改表的字符集
? alter table 表名 character set 字符集名稱;
添加一列
? alter table 表名 add 列名 數據類型;
修改列名稱 和數據類型
? alter table 表名 change 舊的列名 新列名 新數據類型;
? alter table 表名 modify 列名 新數據類型(這種方式只改數據類型);
刪除列
? alter table 表名 drop 列名;
D(Delete):刪除
DML:增刪改表中數據
添加數據:
? 語法:insert into 表名(列名1,列名2,,...列名n)values(值1,值2,...值n);
注意
刪除數據
? 語法:
? delete from 表名[where 條件]
? 如果不加條件,則刪除表中所有記錄
?
修改數據
? 語法:
? update 表名 set 列名1 = 值1 ,列名2 = 值2,....[where 條件];
? 如果不加任何條件,則會將表中所有記錄全部修改
DQL:查詢語句
排序查詢
? 語法:
? SELECT *FROM 表名 ORDER BY 排序字段1 排序方式1,排序字段 排序方式2...
? 排序方式:
? ASC:升序,磨人的
? DESC:降序
? 注意:
? 如果有多個排序條件,則當前邊的條件值一樣時,才會判斷第二條件
聚合函數
分組查詢
? 1.語法:group by分組字段;
? 2.注意:
分組之后查詢的字段:分組字段、聚合函數
where和having的區別
? 1.where在分組之前就已經限定了(篩選出條件不滿足的)having在分完組之后在進行限定,又一次篩選出不滿足的
? 2.where后不可以跟聚合函數,having可以跟聚合函數
分頁查詢
DQL:查詢表中的記錄
語法
select
? 字段列表(name ,age,sex)
from
? 表名列表
where
? 條件列表
group by
? 分組查詢
having
? 分組后的條件
order by
? 排序
limit
? 分頁限定
基礎查詢
多個字段的查詢
? select 字段名1,....from 表名;
去除重復
? distinct
計算列
? 一般可以使用四則運算計算列與列之間的值
? ifnull(表達式1,表達式2):表達式1表示的是哪個字段,如果該字段為null,則使用表達式2來替代null
其別名
as
條件查詢
where子句后跟條件
運算符>,<,<=,>=,=,<>,,BETWEEN...AND ,IN(集合),LIKE, IS NULL ADN或&&,or或||,not或!
表的約束
非空約束:
-- 非空的作用:被修飾的列不能為null -- 非空約束的創建 在創建表示添加非空約束 CREATE TABLE stu(id INT NOT NULL, -- id為非空NAME VARCHAR(20) ); -- 在表創建完之后添加非空 ALTER TABLE stuMODIFY NAME VARCHAR(20) NOT NULL; -- NAME為非空唯一約束
-- 唯一約束的作用:被修飾的列的值不能重復 -- 創建表時,添加唯一元素 CREATE TABLE stu(id INT,phome_number VARCHAR(20) UNIQUE -- 添加了唯一元素 ); -- 在表創建后添加唯一約束 ALTER TABLE stu MODIFY phone number VARCHAR(20) UNIQUE; -- 刪除唯一約束 ALTER TABLE stu DROP INDEX phone_number;主鍵約束
CREATE TABLE stu(id INT PRIMARY KEY AUTO_INCREMENT, -- 給id添加主鍵約束,AUTO_INCREMENT自動增長NAME VARCHAR(20) ); -- 刪除主鍵 ALTER TABLE stu DROP PRIMARY KEY; -- 創建表后,添加主鍵 ALTER TABLE stu MODIEY id INT PRIMARY KEY; -- 刪除自動增長 ALTER TABLE stu MODIEY id INT; -- 添加自動增長 ALTER TABLE stu MODIEY id INT AUTO_INCREMENT;外鍵約束
-- 外鍵約束作用:讓表與表之間產生關系,從而保證數據的正確性 CREATE TABLE 表名(....外鍵列constraint 外鍵名稱 foreign key (外鍵列名稱) references 主表名稱(注表列名稱) ); -- 刪除外鍵 ALTER TABLE 表名 DROP FOREIGN KEY 外鍵名稱; -- 創建之后,添加外鍵 ALTER TABLE 表名 ADD constraint 外鍵名稱 foreign key (外鍵列名稱) references 主表名稱(注表列名稱) -- 級聯操作 -- 作用,列被修改后被關聯的另外一條列也會被更改 -- 添加方法 ALTER TABLE 表名 ADD ALTER TABLE 表名 ADD constraint 外鍵名稱 foreign key (外鍵列名稱) references 主表名稱(注表列名稱) ON UPDATE CASCADE ON DELETE CASCADE;ON UPDATE CASCADE;級聯更新,更新一條列,被關聯的列也會被更新ON UPDATE CASCADE;級聯刪除,刪除一條列,被關聯的列也會被刪除轉載于:https://www.cnblogs.com/train99999/p/10958159.html
總結
以上是生活随笔為你收集整理的笔记-JavaWeb学习之旅2的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 文件(2)
- 下一篇: Redis-RDB持久化设置
