mysql之基本資料庫操作(二)

2022-07-05 01:15:09 字數 4595 閱讀 2829

# 啟動

$ sudo service mysqld start

# 停止

$ sudo service mysqld stop

# 重啟

$ sudo service mysqld restart

# 檢視程序

ps ajx|grep mysql

# 將mysql-server新增到環境變數

ln -s /usr/local/mysql/support-files/mysql-server /usr/bin/mysql-server

mysql-server start:啟動mysql

mysql-server stop :停止mysql

mysql-server restart :重啟mysql

mysql-server reload :修改了配置檔案後,重新載入mysql

mysql-server status :檢視mysql的狀態

# username代表使用者名稱;可以先不輸入密碼,回車後再輸入,方式密碼出現明文

mysql -u username -p password

# 退出

quit;

exit;

前提是遠端資料庫配置了允許遠端連線;

# mysql -h ip位址 -p 埠  -u root -p

-h後面寫要連線的主機ip位址

-p 寫資料庫的埠,不寫預設埠為3306

-u後面寫連線的使用者名稱

-p回車後寫密碼

# 建立資料庫,dbname為資料庫名,charset指定編碼

create database dbname charset=utf8;

# 刪除資料庫

drop database 資料庫名;

# 切換資料庫

use 資料庫名;

# 檢視當前選擇資料庫

select database();

# 檢視所有的資料庫

show databases;

# 檢視當前資料庫的所有表

show tables;

# 檢視表的結構

desc 表的名字

# 檢視某個表的建立語句

show create table 表名;

# 更改表的名字

rename table 原表名 to 新錶名;

# 建立乙個表

create table 表名(定義字段)

# 刪除乙個表

drop table 表名;

# 有時出現刪除失敗的情況,一般是表進行了相互關聯的情況,使用set foreign_key_checks = 0;關閉外來鍵約束,刪除成功後啟動外來鍵約束set foreign_key_checks = 1;

# 增加字段

alter table 表名 add 列名 型別;

# 對欄位重新命名

alter table 表名 change 原名 新名 型別及約束;

# 修改欄位的型別和約束

alter table 表名 modify 列名 型別及約束;

# 刪除字段

alter table 表名 drop 字段

create table person(

-> id int unsigned primary key auto_increment not null,

-> name varchar(20) default '',

-> age tinyint unsigned default 0,

-> gender enum('男','女','保密'),

-> isdelete bit default 0

-> );

表的字段的定義格式為:

欄位名  型別  約束
char: 可定義0~255個位元組,如char(5),定義後不可變;每個值一定佔5個位元組;

varchar: 可定義0~255個位元組,如varchar(5),定義後可變;每個值儲存可小於5個位元組;

text:可定義0~65535個位元組,用來傳送大文字;

bit儲存位字段值,bit(m),m的範圍1~64,預設為1;

enum:enum("1","2"),非法插入時會插入空字串,其值為0;如果宣告不允許為空,則預設值為允許值得第乙個元素;索引規則從第乙個開始;最大可以有65535

decimal:如decimal(m,d),m表示數值的總的位數,d表示小數部分的位數;不指定預設取值decimal(10,0),乙個引數則d取值0;m取值範圍為165,超出報錯,d取值030,超出報錯;

numeric:和decimal是相同的型別;

float : float(m,d),m取值範圍為0255,當m小於6位數字的時候是準確的,超出範圍報錯;d取值範圍030,。

real : real(m,d),

double : double(m,d),m,d範圍和float一樣,m<=16時,數字是準確的。

在float和double中,若m的定義分別超出7和17,則多出的有效數字部分,取值是不定的,通常數值上會發生錯誤。

| 型別 | 位元組 | 舉例 |

| date | 4 | '2020-01-01' |

| time | 3 |'12:29:59' |

| datetime | 8 |'2020-01-01 12:29:59' |

| year | 1 |'2017'

# 乙個字段可以有多個約束,在定義的時候依次寫在後面

primary key : 主鍵,物理上儲存的順序;

auto_increment:自增長,一般配合主鍵使用;

not null:非空,欄位不允許填寫空值;

default:預設值;

foreign key:外來鍵;

unique:欄位不允許重複;

unsigned:無符號,針對的是數值型別;指的是非負數;

signed:有符號,值有理數;

drop table if exists 'users'; # 首先驗證表是否存在,存在則刪除

set foreign_key_checks=0; # 設定是否外來鍵檢查,0否,1是

create table 'users' (

'id' int, primary key autoincrement, # 主鍵,自動增長

'username' varchar(20) unique not null, # 不可重複,不能為空

'age' int default 20, # 預設為20

'status' enum('a', 'b', 'c') default a, # 列舉選擇

index 'users_username' ('username' asc), # 建立乙個普通索引

) engine=innodb default charset=utf8; # 設定引擎和編碼

create table 'address' (

'id' int, primary key autoincrement, # 主鍵,自動增長

'name' varchar(20) unique not null,

foreign key (`name`) references `users` (`username`) on delete cascade, # 建立關聯user表的外來鍵並且設定聯級刪除

)engine=innodb default charset=utf8; # 設定引擎和編碼

# 將資料匯出

mysqldump –u uesrname –p 資料庫名 > mysql.sql;

# 將資料匯入新的資料庫

mysql -u username -p 資料庫名 < mysql.sql

# 將所有的相關mysql操作寫入乙個sql檔案

# 登陸資料庫選擇要執行的資料庫

source ***.sql

# 查詢所有的列的列的所有的字段

select * from 表名

# 查詢所有的列的部分字段

select id,name from 表名

# 查詢部分列的部分字段

select id,name from 表名 where id=8;

# 標準插入多行

insert into 表名 values(...),(...);

# 插入部分列

insert into 表名(id,name) values(...),(...);

# 主鍵自動增長,但是需要佔位,一般使用0;

update 表名 set 列1=值1,列2=值2... where 條件
# 刪除指定的列

delete from 表名 where 條件

資料庫 基本資料操作

通用語法 insert into table name field1,field2,fieldn values value1,value2,valuen 例子 通用語法 select column name,column name from table name where clause 使用 wh...

MySQL的基本資料庫操作命令

最近在學習web開發的課程,由於老師要求後台使用php apache mysql,而之前學習的一直是微軟家的sql sever,對mysql並不是很熟悉,尤其是mysql需要大量的使用命令列進行操作,為了方便自己的學習,以及各位閱讀我部落格的有需要的朋友們,今天就先總結一下mysql在資料庫建立過程...

MySQL基本操作之資料庫基本操作

mysql中建立資料庫的sql語法格式為 create database 資料庫名 其中,資料庫名不能與已經存在的資料庫同名。下圖建立資料庫test db 可以通過使用以下語句檢視資料庫的定義 show create database 資料庫名 g 其中,g 表示格式化輸出,可加可不加。如下圖所示 ...