Linux-資料庫1

來源:互聯網
上載者:User

標籤:建立表   時間類   結構化   語言   關係   toolbar   set   資料庫的操作   自動   

資料庫介紹

資料庫(database,DB)是指長期儲存在電腦內的,有組織,可共用的資料的集合。資料庫中的資料按一定的數學模型組織、描述和儲存,具有較小的冗餘,較高的資料獨立性和易擴充性,並可為各種使用者共用。

關聯式資料庫: MySql ,Oracle, sql server , db2 ,sqlite,

非關聯式資料庫: redis mongodb

so無所謂。。。

 

MySQL資料庫

安裝

windows上安裝略

linux上安裝略

啟動

連接埠號碼3306

設定密碼

1 mysqladmin -uroot password ‘123‘   #設定初始密碼,初始密碼為空白因此-p選項沒有用2 mysqladmin -u root -p123 password ‘1234‘ #修改root使用者密碼

登入資料庫

1 mysql               #本地登入,預設使用者root,空密碼,使用者為[email protected]2 mysql -uroot -p1234 #本地登入,指定使用者名稱和密碼,使用者為[email protected]3 mysql -uroot -p1234 -h 192.168.31.95 #遠程登入,使用者為[email protected]

忘記密碼1:從刪庫到跑路

忘記密碼2:越過授權庫

 

SQL語句

SQL語句:結構化語句,SQL是專為資料庫而建立的操作命令集,是一種功能齊全的資料庫語言。幾乎所有的關係型資料庫都有對SQL語句的支援

SQL語句規範:
1、不區分大小寫(命令建議大寫,原因在於,在SQL解析的過程中,資料庫會自動將小寫命令轉換成大寫,當有大批量SQL語句操作的時候,轉換也會產生一定的開銷)
2、以分號作為結束符號
3、注釋(單行--,多行/* */)

SQL語句操作對象:資料庫的操作、資料表的操作、表記錄的操作


資料庫的操作
1、查看所有的資料庫

mysql> SHOW DATABASES;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || sakila             || sys                || world              |+--------------------+6 rows in set (0.00 sec)

 

2、建立資料庫(即在磁碟上建立一個對應的檔案夾)

文法:create  database  [if not exists]  db_name  [character set xxx];

   命令      可選判斷    資料庫名   資料庫的字元編碼

mysql> CREATE DATABASE IF NOT EXISTS student CHARACTER SET utf8;Query OK, 1 row affected (0.01 sec)mysql> SHOW DATABASES;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || sakila             || student            || sys                || world              |+--------------------+7 rows in set (0.00 sec)

 

3、查詢一個資料庫的建立方式(建立命令)

文法:show  create  database  db_name ;

   命令          資料庫名

mysql> SHOW CREATE DATABASE student;+----------+------------------------------------------------------------------+| Database | Create Database                                                  |+----------+------------------------------------------------------------------+| student  | CREATE DATABASE `student` /*!40100 DEFAULT CHARACTER SET utf8 */ |+----------+------------------------------------------------------------------+1 row in set (0.04 sec)

 

4、修改資料庫字元編碼

文法:alter  database  db_name  character set gbk;

     命令         資料庫名    修改字元編碼

mysql> ALTER DATABASE student CHARACTER SET gbk;Query OK, 1 row affected (0.01 sec)mysql> SHOW CREATE DATABASE student;+----------+-----------------------------------------------------------------+| Database | Create Database                                                 |+----------+-----------------------------------------------------------------+| student  | CREATE DATABASE `student` /*!40100 DEFAULT CHARACTER SET gbk */ |+----------+-----------------------------------------------------------------+1 row in set (0.00 sec)#註:修改資料庫名字,直接找到該資料庫檔案夾,修改檔案夾名字

 

5、刪除資料庫

mysql> DROP DATABASE student;Query OK, 0 rows affected (0.00 sec)mysql> SHOW DATABASES;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || sakila             || sys                || world              |+--------------------+6 rows in set (0.00 sec)

 

6、使用資料庫(即切換資料庫,進入到資料庫內)

mysql> USE mysql;Database changedmysql> SELECT database();+------------+| database() |+------------+| mysql      |+------------+1 row in set (0.00 sec)

 

-- 注意:進入到某個資料庫後沒辦法再退回之前狀態,但可以通過use進行切換

查看當前使用的資料庫 select database();

 

資料表的操作

表內的列:欄位

表內的行:表記錄

1、建立一個表(進入庫裡):最後一個欄位不加逗號結束

 文法:create  table  table_name(

      欄位名 欄位資料類型 [約束] ,
      欄位名 欄位資料類型 [約束] ,
      欄位名 欄位資料類型 [約束] ,
      ....
      欄位名 欄位資料類型 [約束] )  [character set xxx];

約束: (not null + unique就等於主鍵),約束不止這三個
  主鍵(primary key):非空 且 唯一
  not null: 非空約束
  unique: 唯一約束

mysql> CREATE DATABASE teachers;Query OK, 1 row affected (0.00 sec)mysql> USE teachers;Database changedmysql> CREATE TABLE teacher1(    ->          id INT primary key,    ->          name VARCHAR(20) not null,    ->          age INT,    ->          birth DATE);Query OK, 0 rows affected (0.51 sec)

 

2、查看資料庫的表

mysql> SHOW TABLES;+--------------------+| Tables_in_teachers |+--------------------+| teacher1           |+--------------------+1 row in set (0.00 sec)

 

3、查看錶結構

mysql> DESC teacher1;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id    | int(11)     | NO   | PRI | NULL    |       || name  | varchar(20) | NO   |     | NULL    |       || age   | int(11)     | YES  |     | NULL    |       || birth | date        | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+4 rows in set (0.00 sec)

 

4、查看建立表命令

mysql> SHOW CREATE TABLE teacher1;+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Table    | Create Table                                                                                                                                                                                           |+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| teacher1 | CREATE TABLE `teacher1` (  `id` int(11) NOT NULL,  `name` varchar(20) NOT NULL,  `age` int(11) DEFAULT NULL,  `birth` date DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 |+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)

 

5、增加列(欄位):可以增加多個列,類似於表建立的格式。

文法:alter  table  tab_name  add  [column]  列名  類型 [完整性條件約束條件] [first|after 欄位名];

     命令       表名    添加     列                   定義列位置,first最前邊,after在某個欄位之後

mysql> ALTER TABLE teacher1 ADD COLUMN sex INT;Query OK, 0 rows affected (0.58 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> DESC teacher1;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id    | int(11)     | NO   | PRI | NULL    |       || name  | varchar(20) | NO   |     | NULL    |       || age   | int(11)     | YES  |     | NULL    |       || birth | date        | YES  |     | NULL    |       || sex   | int(11)     | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+

 

註:COLUMN可以省略

mysql>  ALTER TABLE teacher1 ADD addr VARCHAR(20) first;Query OK, 0 rows affected (0.53 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> DESC teacher1;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| addr  | varchar(20) | YES  |     | NULL    |       || id    | int(11)     | NO   | PRI | NULL    |       || name  | varchar(20) | NO   |     | NULL    |       || age   | int(11)     | YES  |     | NULL    |       || birth | date        | YES  |     | NULL    |       || sex   | int(11)     | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+6 rows in set (0.00 sec)

 

6、修改一列類型

文法:alter  table  tab_name  modify  列名  類型  [完整性條件約束條件] [first|after 欄位名];

mysql>  ALTER TABLE teacher1 MODIFY sex CHAR AFTER id;Query OK, 0 rows affected (0.82 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> DESC teacher1;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| addr  | varchar(20) | YES  |     | NULL    |       || id    | int(11)     | NO   | PRI | NULL    |       || sex   | char(1)     | YES  |     | NULL    |       || name  | varchar(20) | NO   |     | NULL    |       || age   | int(11)     | YES  |     | NULL    |       || birth | date        | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+6 rows in set (0.00 sec)

 

7、修改列名

文法:alter  table  tab_name  change  [column]  列名  新列名  類型  [完整性條件約束條件] [first|after 欄位名];

mysql>  ALTER TABLE teacher1 CHANGE birth birthday DATE;Query OK, 0 rows affected (0.12 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> DESC teacher1;+----------+-------------+------+-----+---------+-------+| Field    | Type        | Null | Key | Default | Extra |+----------+-------------+------+-----+---------+-------+| addr     | varchar(20) | YES  |     | NULL    |       || id       | int(11)     | NO   | PRI | NULL    |       || sex      | char(1)     | YES  |     | NULL    |       || name     | varchar(20) | NO   |     | NULL    |       || age      | int(11)     | YES  |     | NULL    |       || birthday | date        | YES  |     | NULL    |       |+----------+-------------+------+-----+---------+-------+6 rows in set (0.00 sec)

 

8、刪除一列
文法:alter  table  tab_name  drop  [column] 列名;

mysql>  ALTER TABLE teacher1 DROP sex;Query OK, 0 rows affected (0.50 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> DESC teacher1;+----------+-------------+------+-----+---------+-------+| Field    | Type        | Null | Key | Default | Extra |+----------+-------------+------+-----+---------+-------+| addr     | varchar(20) | YES  |     | NULL    |       || id       | int(11)     | NO   | PRI | NULL    |       || name     | varchar(20) | NO   |     | NULL    |       || age      | int(11)     | YES  |     | NULL    |       || birthday | date        | YES  |     | NULL    |       |+----------+-------------+------+-----+---------+-------+5 rows in set (0.00 sec)

 

9、修改表名
文法:rename  table  表名  to  新表名;

mysql> RENAME TABLE teacher1 to teacher;Query OK, 0 rows affected (0.14 sec)mysql> DESC teacher1;ERROR 1146 (42S02): Table ‘teachers.teacher1‘ doesn‘t existmysql> DESC teacher;+----------+-------------+------+-----+---------+-------+| Field    | Type        | Null | Key | Default | Extra |+----------+-------------+------+-----+---------+-------+| addr     | varchar(20) | YES  |     | NULL    |       || id       | int(11)     | NO   | PRI | NULL    |       || name     | varchar(20) | NO   |     | NULL    |       || age      | int(11)     | YES  |     | NULL    |       || birthday | date        | YES  |     | NULL    |       |+----------+-------------+------+-----+---------+-------+5 rows in set (0.00 sec)

 

10、修該表所用的字元集 
文法:alter  table  表名  character  set  編碼;

mysql> ALTER TABLE teacher CHARACTER SET gbk;Query OK, 0 rows affected (0.09 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> SHOW CREATE TABLE teacher;+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Table   | Create Table                                                                                                                                                                                                                                                                     |+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| teacher | CREATE TABLE `teacher` (  `addr` varchar(20) CHARACTER SET utf8 DEFAULT NULL,  `id` int(11) NOT NULL,  `name` varchar(20) CHARACTER SET utf8 NOT NULL,  `age` int(11) DEFAULT NULL,  `birthday` date DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=gbk |+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)

 

11、刪除除表

文法:drop table table_name 

mysql> DROP TABLE teacher;Query OK, 0 rows affected (0.19 sec)mysql> SHOW TABLES;Empty set (0.00 sec)

  

補充:MySQL表資料類型

MySQL支援多種資料類型,大致可以分為三類:數值、日期/時間和字串(字元)類型

數實值型別

日期/時間類型

表示時間值的日期和時間類型為DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每個時間類型有一個有效值範圍和一個"零"值,當指定不合法的MySQL不能表示的值時使用"零"值。

 

字串類型

字串類型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

CHAR和VARCHAR類型類似,但它們儲存和檢索的方式不同。它們的最大長度和是否尾部空格被保留等方面也不同。在儲存或檢索過程中不進行大小寫轉換。

CHAR:指定字元個數

VARCHAR:最大長度

BINARY和VARBINARY類類似於CHAR和VARCHAR,不同的是它們包含二進位字串而不要非二進位字串。也就是說,它們包含位元組字串而不是字元字串。

BLOB是一個二進位大對象,可以容納可變數量的資料。有4種BLOB類型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它們只是可容納值的最大長度不同。

有4種TEXT類型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。這些對應4種BLOB類型,有相同的最大長度和儲存需求。

 

表記錄的操作:下一天

Linux-資料庫1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.