mysql資料庫基礎

2021-09-16 21:13:09 字數 2023 閱讀 1201

一、資料庫操作:

1、檢視所有資料庫  show databases;

2、使用資料庫     use 資料庫名;

3、檢視當前使用的資料庫  select database();

4、建立資料庫   create database 資料庫名 chartset=utf8;

5、刪除資料庫   drop database 資料庫名;

二、資料表操作:

1、檢視當前資料庫的所有表   show tables;

2、檢視指定表的結構        desc 表名;

3、設計班級表結構為id、name,編寫建立表的語句 create table t_cleasses(id int unsigned not null primary key auto_increment,name varchar(10));

4、給表新增列名:alter table 表名 add 列名 型別及約束;

5、修改欄位的型別及約束: alter table 表名 modify 列名 型別及約束;

6、重新命名字段:alter table 表名 change 舊名 新名  型別及約束

7、刪除字段:alter table 表名 drop 列名

三、注意

1、select* from student limit (n-1)*m,m; 查詢第n頁的資料;(n-1)*m開始的下標(從0開始),m查詢的資料條數;

2、外連線、內連線可以建立乙個虛擬的表,對這張虛擬表的修改會對映到真實的表(from後面的);

四、資料庫程式設計:

# 建立連線

conn = pymysql.connect(host="localhost", user="root", password="mysql", database="db_jingdong", port=3306,charset='utf8')

# 取得游標 ,預設是元組游標,即結果集記錄以元組的形式呈現的

cur = conn.cursor()

五、要點:

1、事務的acid特性(原子性、一致性、隔離性、永續性):

a>、原子性:語句不可分割,要麼一起執行,要麼一起不執行;

b>、一致性:資料庫總是從乙個一致性轉換為另乙個一致性;

c>、隔離性:乙個事務所做的修改在最終提交之前,對其他事務是不可見的;(serializable,repeatable read, read commit,read uncommit)

d>、永續性:一旦事務提交,則其所做的修改會永久儲存在資料庫中

3、索引:

1、索引最主要解決的問題:當資料量較大時,且這些資料不需要經常修改,使用索引來加快查詢速度;

2、對於比較資料較少的表,查詢開銷不會太大,也沒有必要建立另外的索引;

3、建立太多的索引將會影響更新和插入的速度,因為他需要同時更新每個索引檔案

4、對於乙個經常需要更新和插入的**,就沒有必要為很少使用的where字句單獨建立索引;

5、建立索引會占用磁碟。

6、模糊查詢防注入(一般查詢條件由使用者傳過來)

query_name = input("請輸入要查詢的商品名稱")

# 自己手動拼接sql語句

sql = "select * from goods where name like %s"  # %筆記本%

# 通過游標執行sql語句

# return number of affected rows  影響的行數 

# params = [query_name]

params = ['%%%s%%' % query_name]  # %筆記本%   % 需要轉義

rows_affect = cur.execute(sql, params)

7、注意:

1、group by 接多個欄位只需用逗號隔開;

2、含有非聚合函式的字段就要加在group by 後面;

3、子查詢作為表,要取別名;

4、複雜查詢:先把顯示的項標出來,多做幾個子查詢;

5、操作:如何操作+對什麼型別(table、view、index等)操作+要操作物件的名稱

資料庫 mysql 基礎

1.建立 create database 資料庫名 例如建立名為d testdb的資料庫 mysql create database d testdb 2.修改 alter database 資料庫名 character set 字符集名 例如修改字符集 set utf8 3.刪除 drop dat...

mysql資料庫基礎

乙個表不能有多個主鍵?解釋 不能,乙個表中有且只能有乙個主鍵,大事兩列 字段 可以作為乙個主鍵 例如 mysql create table t name varchar 5 addr varchar 28 age int 5 primary key name,addr 為什麼要設定主鍵?資料庫儲存的...

MySql資料庫(基礎)

學習資料庫,我覺得關鍵在於記住相關的英文單詞。把自己比較陌生的寫下來,便於記憶 查詢表結構 desc 表名 修改表頭欄位都是 alter table.開頭 給建立好的表新增位址字段,例如給學生表新增gender varchar 2 字段 alter table student add column ...