mysql安裝與基本使用
Mysql數據庫的基本使用
服務端
1.安裝:sudo apt-get install mysql-service
2.啟動:sudo service mysql start
3.查看進程中是否存在mysql服務:ps ajx|grep mysql (/usr/sbin/mysqld)
4.停止服務:sudo service mysql stop
5.重啟服務:sudo service mysql restart
6.查看配置文件:配置文件目錄為/etc/mysql/mysql.conf.d/mysqld.cnf
客戶端
1.安裝:sudo apt-get install mysql-client
2.連接服務器:mysql -u root(用戶名) -p mysql(密碼)
3.退出:ctrl+d 或 exit 或 quit
4.修改輸入提示符:prompt 提示符 (\D完整日期,\d數據庫名稱,\u用戶,\h主機)
5.清屏:ctrl+shift+l
數據庫操作
1.查看所有數據庫: show databases;
2.創建數據庫:create database 數據庫名 charset = utf-8;
3.使用數據庫:use 數據庫名;
4.查看當前使用的數據庫:select database();
5.刪除數據庫:drop database 數據庫名;
數據表操作
1.查看所有數據表: show tables;
2.創建表:
create table table_name(
column1 datatype constraint,
column2 datatype,
...
columeN datatype,
PRIMARY KEY(one or more columns)
);
實例:
create table students(
id int unsigned primary key auto_increment not null,
name varchar(20) not null,
age tinyint unsigned default 0,
height decimal(5,2),
gender enum("男","女","保密") default "保密"
);
3.查看表的創建語句: show create table 表名;
4.查看表結構: desc 表名;
5.修改表結構
5.1.添加字段:alter table 表名 add 字段名 類型;
alter table students add birthday datetime;
5.2.修改字段類型: alter table 表明 modify 字段名 新類型及約束;
alter table students modify birthday date not null;
5.3.字段重命名: alter table 表名 change 舊名 新名 類型及約束;
alter table students change birthday birth date not null;
6.刪除表: drop table 表名;
數據操作
1.基本查詢
1.1.查詢表中所有數據: select * from 表名;
select * from students;
1.2.查詢指定列的數據: select column1, column2,... from 表名;
select name, height from students;
2.添加數據
2.1.全列插入:insert into 表名 values(...)[,(...)...];
insert into students values(0,"悟空",40,178.50,"男","1980-10-01");
insert into students values(0,"悟飯",20,180.00,"男","2000-10-2"), (0,"比克",default,190,default,"1950-1-1");
2.2.部分插入:insert into 表名 (列1,列2,...) values(值1,值2,...)[,(值1,值2,...)];
insert into students (name,age,birth) values("貝吉塔",60,"1970-1-1");
insert into students (name,birth) values("特蘭克斯","2008-12-1"),("悟天","2009-12-2");
3.修改數據
update 表名 set 列1=值1,列2=值2...where 條件;
update students set age=12 where name="特蘭克斯";
4.刪除數據
4.1.物理刪除
delete from 表名 where 條件;
delete from students where name="悟天";
4.2.邏輯刪除(設置isdelete字段,類型為bit,默認值為0,需要刪除數據時修改isdelete=1)
(alter table students add isdelete bit default 0 not null;)
update students set isdelete=1 where 條件;
數據庫備份
1.備份:運行mysqldump命令
mysqldump -u root -p 數據庫名 > python.sql(保存到*.sql文件)
# 按提示輸入密碼
2.恢復
2.1.連接mysql服務器,創建新的數據庫,退出登錄
2.2.mysql -u root -p 新數據庫名 < python.sql
# 按提示輸入密碼
數據完整性
一個數據庫就是一個完整的業務單元,可以包含多張表,數據被存儲在表中。為了在表中更加準確的存儲數據,保證數據的完整有效,
可以在創建表的時候為表添加一些強制性的驗證,包括數據字段的類型和約束。
1.數據類型
使用數據類型的原則是:夠用就行,盡量使用取值範圍小的,而不用大的,這樣可以更多的節省存儲空間。
常用數據類型如下:
整數:int,bit
小數:decimal
字符串:varchar,char
日期時間: date, time, datetime
枚舉類型(enum)
特別說明的類型如下:
decimal 表示浮點數,如decimal(5,2)表示共存5位數,小數占2位
char 表示固定長度的字符串,如char(3),如果填充‘ab‘時會補一個空格為‘ab ‘
varchar 表示可變長度的字符串,如varchar(3),填充‘ab‘時就會存儲‘ab‘
字符串 text 表示存儲大文本,當字符大於4000時推薦使用
對於圖片、音頻、視頻等文件,不存儲在數據庫中,而是上傳到某個服務器上,然後在表中存儲這個文件的保存路徑
2.約束
主鍵 primary key:物理上存儲的順序
非空 not null:此字段不允許填寫空值
惟一 unique :此字段的值不允許重復
默認 default:當不填寫此值時會使用默認值,如果填寫時以填寫為準
外鍵 foreign key:對關系字段進行約束,當為關系字段填寫值時,會到關聯的表中查詢此值是否存在,如果存在則填寫成功,如果不存在則填寫失敗並拋出異常
說明:雖然外鍵約束可以保證數據的有效性,但是在進行數據的crud(增加、修改、刪除、查詢)時,
都會降低數據庫的性能,所以不推薦使用,那麽數據的有效性怎麽保證呢?答:可以在邏輯層進行控制
mysql安裝與基本使用