二 mysql之資料庫的操作

2021-08-02 04:38:46 字數 3073 閱讀 6597

11、ddl之操作表

建立表:

create table[if not exists] 表名(

列名 列型別,

列名 列型別,

… 列名 列型別

); 檢視當前資料庫中所有表名稱:show tables;

檢視指定表的建立語句:show create table 表名(了解);

檢視表結構:desc 表名;

刪除表:drop table 表名;

修改表:

字首:alter table 表名;

新增列:

alter table 表名 add(

列名 列型別,

列名 列型別,

…);

修改列型別(如果被修改的列存在資料,那麼修改的型別可能會影響到已存在資料):

alter table 表名 modify 列名 列型別;

修改列名:

刪除列:alter table 表名 drop 列名;

修改表名稱:alter table 原表名 rename to 新錶名;

12、dml之insert

dql select *from emp(表); 查詢表記錄

dml(資料操作語言,他是對錶記錄操作(增刪改)!)

1、插入資料

insert to 表名(列名1,列名2,…) values(列值1,列值2,…);

在表名後要插入的列名,其他沒有指定的列等同與插入null值。所以插入記錄總是插入一行。不可能半行。(在資料庫中所有的字串型別,必須使用單引,不能使用雙引號。

日期型別也要使用單引號)

在values後給出列值,值的順序和個數必須與前面指定的列對應

*insert into 表名 values(列值1,列值1)

沒有給出要插入的列值,那麼表示插入所有列(但是可讀性降低)

值的個數必須是該表列的個數

值的順序,必須與表建立時給出的列的順序相同

//插入部分列,沒有插入的列,預設的為null

insert into stu(

number,name

)values(

『iconic』,』lisi』

) 2、修改資料

update 表名 set 列名1=列值1,列名2=列值2,[where 條件]

3、刪除資料

delete from 表名【where 條件】//不加where直接刪除表,備份

truncate table 表名:truncate是ddl語句,它是先刪除drop該錶,再create該錶。而無法回滾。

條件:

運算子:=、!=、<>、>、<、>=、<=、between…and、in(…)、is null、not、or、and

注意:

update th_student set age=10 where age is null;(其中不可以換成age=null)

13、dcl

乙個專案建立乙個使用者!乙個專案對應的資料庫只有乙個!

這個使用者只能對這個資料庫有許可權,其他資料庫就操作不了。

1、建立使用者

create user 使用者名稱@ip位址 identified by 『密碼』;

使用者只能在指定的ip位址上登入

create user 使用者名稱@』%』 identified by 『密碼』;

使用者可以在任意ip位址上登入

2、給使用者授權

grant 許可權1,…,許可權n on 資料庫.* to 使用者名稱@ip位址

許可權、使用者、資料庫

給使用者分派在指定的資料庫上的指定的許可權

例如:grant create,alter,drop,inser on mysdb3.* to zhangsan@locahost

grant all on 資料庫.* to 使用者名稱@ip位址

給使用者分派指定資料庫上的指定許可權

3、撤銷授權

revoke 許可權1、…許可權n on 資料庫.* from 使用者名稱@ip位址;

撤銷指定使用者在指定資料庫上的指定許可權

4、檢視許可權

show grants for 使用者名稱@ip位址

檢視只當使用者的許可權

5、刪除使用者

drop user 使用者名稱@ip位址

14、dql-資料基本查詢

一、基本查詢

1、字段(列)控制

select *from 表名;

select *from emp;

–>其中『*』表示查詢所有列

2、查詢指定列

select 列1 [,列2,…列n] from 表名;

select empno,ename,sal,conn from 表名;

3、完全重複的記錄一次

去除完全重複行、

select distinct * 列 from 表

4、列運算

i 數量型別的列可以做加、減、乘、除運算

select sal*1.5 from emp;

select sal+comm from emp;

ii 字串型別可以做連續運算

select concat(『$』,sal) from emp;

iii 轉換null值

有時需要把null值轉換為其它的值,列如com+1000時,如果com列存在null值,那麼null+1000還是null,而我們這時希望把null當成0來運算。

select ifnull(comm,0) from emp;:如果comm存在null值,那麼當成0來運算。

iv 給列起別名

你也許已經注意到了,當使用列運算後名稱很不好看,這時需要給列名起別名,這樣在結果集中列名就顯示別名了

select ifnull (comm,0)+1000 as 獎金 from emp;

–>其中as可以省略

select empno,enmae job,sal,comm from emp;

//其中enmae job表示起別名

Python之操作MySQL資料庫(二)

python對mysql資料庫的操作,包括連線資料庫 建立資料庫 插入資料 查詢資料。1 連線mysql資料庫 coding utf 8 import mysqldb 開啟資料庫連線 db mysqldb.connect localhost root test 引數為ip,使用者名稱,密碼,資料庫 ...

MySQL資料庫之資料庫操作

建立資料庫時指定儲存的字元編碼 如果不指定編碼,資料庫預設使用安裝資料庫時指定的編碼 mysql create database emp charset gbk query ok,1 row affected 0.00 sec 建立資料庫 mysql create database stu quer...

MySQL 二 (資料庫操作)

show databases use 資料庫名 select database create database 資料庫名 charset utf8 例 create database python charset utf8 drop database 資料庫名 例 drop database pyt...