資料庫的基本命令

2021-09-01 13:05:49 字數 3956 閱讀 8937

mysql資料庫修改密碼命令:mysqladmin -u root -p123456 password 4567890

f7檢視命令列表

使用者許可權:grant all privileges on home.* to user@localhost identified by 『12345』;

指定現在在使用的資料庫:select database();

匯入資料庫: use table source url;

truncate table 表名:破壞表的內部結局,然後再重新建立它

case函式的使用:

select nam,

-> case ***

-> when 0 then 『男』

-> when 1 then 『女』

-> else 『0th』

-> end as ***

-> from customer;

內連線:

select u.name,o.oid

-> from order_basic as o

-> inner join user as u on o.uid=u.uid;

修改表的引擎: alter table 表明 engine =『引擎』

事務處理:幾個單獨的處理作為乙個整體來;這樣理論稱為事務處理

事務的特性:acid:原子性、一致性、隔離性、持續性

檢視現在使用的自動提交模式:select @@autocommit

設定自動提交模式命令:set autocommt=0;

分離水平越高,資料的整合型隨之越高,但是同時執行性降低

分離水平越低,資料的整合性隨之越低,但是同時執行性越高

select @@global.tx_isolation;

select @@session.tx_isolation;

select @@tx_isolation;

set session transaction isolation level read uncommitted;設定事務隔離級別

未提交讀(read uncommitted) 可能 可能 可能

已提交讀(read committed) 不可能 可能 可能

可重複讀(repeatable read) 不可能 不可能 可能

可序列化(serializable ) 不可能 不可能 不可能

未提交讀(read uncommitted):允許髒讀,也就是可能讀取到其他會話中未提交事務修改的資料

·提交讀(read committed):只能讀取到已經提交的資料。oracle等多數資料庫預設都是該級別 (不重複讀)

·可重複讀(repeated read):可重複讀。在同乙個事務內的查詢都是事務開始時刻一致的,innodb預設級別。在sql標準中,該隔離級別消除了不可重複讀,但是還存在幻象讀

·序列讀(serializable):完全序列化的讀,每次讀都需要獲得表級共享鎖,讀寫相互都會阻塞

① 髒讀: 髒讀就是指當乙個事務正在訪問資料,並且對資料進行了修改,而這種修改還沒有提交到資料庫中,這時,另外乙個事務也訪問這個資料,然後使用了這個資料

② 不可重複讀:是指在乙個事務內,多次讀同一資料。在這個事務還沒有結束時,另外乙個事務也訪問該同一資料。那麼,在第乙個事務中的兩次讀資料之間,由於第二個事務的修改,那麼第乙個事務兩次讀到的的資料可能是不一樣的。這樣就發生了在乙個事務內兩次讀到的資料是不一樣的,因此稱為是不可重複讀。

④ 幻讀:第乙個事務對乙個表中的資料進行了修改,這種修改涉及到表中的全部資料行。同時,第二個事務也修改這個表中的資料,這種修改是向表中插入一行新資料。那麼,以後就會發生操作第乙個事務的使用者發現表中還有沒有修改的資料行,就好象發生了幻覺一樣。

show create database dbname;

create database dbname charachter set charset;

一對多create table department(

id int primary key,

name varchar(100)

);create table employee(

id int primary key,

name varchar(100),

salary float(8,2),

dept_id int,

constraint dept_id_fk foreign key(dept_id) references department(id)

);

多對多

create table teacher(

id int primary key,

name varchar(100),

salary float(8,2)

); create table student1(

id int primary key,

name varchar(100),

grade varchar(10)

); create table teacher_student1(

t_id int,

s_id int,

primary key(t_id,s_id),

constraint t_id_fk foreign key(t_id) references teacher(id),

constraint s_id_fk foreign key(s_id) references student1(id)

); 一對一

create table human(

id int primary key,

name varchar(100)

); create table idcard(

id int primary key,

num varchar(100),

constraint huanm_id_fk foreign key(id) references human(id)

);

//set character_set_results=utf8

、表的複雜查詢

1、連線查詢

1.0連線的基本語法格式:

from table1 join_type table2 [on (join_condition)][where (query_condition)]

table1:左表

table2:右表

join_type:連線的型別。交叉、內連線、左外連線、右外連線

on:設定連線條件

where:對連線查詢的結果進步一的篩選

1.1交叉連線

select * from customer cross join orders;

或者select * from customer,orders;

select c.name,o.order_number from customer c,orders o;

1.2內連線:

隱式內連線:(不使用on關鍵字,使用where)

select * from customer c,orders o where c.id=o.customer_id;

顯式內連線:(使用on關鍵字)

select * from customer c inner join orders o on c.id=o.customer_id;

1.3外連線:

左外連線:(返回符合連線條件的所有記錄,同時還返回左表中其餘的所有記錄)

select * from customer c left outer join orders o on c.id=o.customer_id;

右外連線:(返回符合連線條件的所有記錄,同時還返回右表中其餘的所有記錄)

select * from customer c right outer join orders o on c.id=o.customer_id;

//備份資料庫

mysqldump -u root -p123456 test> d:/test.sql

資料庫基本命令

增刪改查 select 從資料庫中提取資料 update 更新資料庫中的資料 delete 從資料庫中刪除資料 insert into 向資料庫中插入新資料 唯一性查詢 sql select distinct 插入語句 insert into websites name,url,alexa,coun...

資料庫的基本命令

create database databasenameon name datebasename data,資料檔案的邏輯檔名 filename 該資料檔案的儲存路徑 datebasename data.mdf size 10,檔案初始大小,單位為m maxsize 50 檔案最大值 filegro...

Linux mysql資料庫基本命令

一 啟動及登入mysql 1 linux下啟動mysql的命令 mysqladmin start ect init.d mysql start 前面為mysql的安裝路徑 2 linux下重啟mysql的命令 mysqladmin restart ect init.d mysql restart 前...