第一節(jié).數(shù)據(jù)庫基本簡介
什么是庫?
庫是用來存放n張表
什么是表孵稽?
在數(shù)據(jù)庫中钻哩,表(table)類似于excel,可以用來存放數(shù)據(jù)
字段:類似于excel中的表頭
數(shù)據(jù)類型:字符串(varchar),整數(shù)(tinyint,int,bigint),小數(shù)(float),日期(Data)
什么是數(shù)據(jù)肛冶?
文本,視頻扯键,圖片睦袖,音頻等
第二節(jié).創(chuàng)建數(shù)據(jù)庫
語法規(guī)則:
create database 庫名;
刪除指定數(shù)據(jù)庫:drop database 庫名
在創(chuàng)建庫時荣刑,希望指定編碼語法:create database 庫名 character set 編碼名
第三節(jié).表的創(chuàng)建及其信息的錄入
創(chuàng)建表語法:
CREATE TABLE 表名(
? ? 字段1 數(shù)據(jù)類型馅笙,
? ? 字段2 數(shù)據(jù)類型,
? ? ....
)
由于先有庫(database),然后在庫中創(chuàng)建表(table)
選中某一個數(shù)據(jù)庫:use 庫名厉亏;
創(chuàng)建例子:
CREATE TABLE Java成績表(
? 姓名 VARCHAR(20),
? 班級 VARCHAR(20),
? Java成績 FLOAT
)
刪除指定表格語法:drop table 表名董习;
DROP TABLE java成績表;
-往表中添加,刪除,修改,查詢數(shù)據(jù)(CRUD)-
往指定的表中添加數(shù)據(jù):insert into 表名(字段1,字段2....)value(值1爱只,值2....)
INSERT INTO java成績表(姓名,班級,java成績) VALUES('王二麻子','dt55',90.5);
INSERT INTO java成績表(姓名) VALUES('王五');
注意:在插入時皿淋,可以省略表后面的字段名,但前提是values關鍵字后面的字段值數(shù)量必須與表字段數(shù)一致
INSERT INTO java成績表 VALUES('王二麻子','dt55',90.5);
插入數(shù)據(jù)的第二種語法:insert into 表名 set 字段名1=字段值1恬试,字段名2=字段值2...
如果“=”是放在set關鍵字后面窝趣,則是“賦值運算符”
INSERT INTO java成績表 SET 姓名='李四';
同時插入多條數(shù)據(jù)
INSERT INTO java成績表(姓名,班級,java成績)
VALUES('abc','dt55',90.5),('def','dt55',90.5),('fgh','dt55',90.5);
刪除數(shù)據(jù)語法:delete from 表名 where 條件
如果“=”放在where關鍵字后面,則是“關系運算符”
DELETE FROM java成績表 WHERE 姓名='李四';
第四節(jié).運算符
1.關系運算符
在mysql中常用的關系運算符有:=(等于),>(大于),>=(大于等于),<(小于),<=(小于等于),!=(不等于)
在mysql中關系運算符放在where之后
查詢語法規(guī)則:select 字段1,字段2...from 表名 [where 條件]
例:
查詢某一張表中的所有數(shù)據(jù)記錄
SELECT 姓名,班級,java成績 FROM java成績表;
SELECT 姓名 FROM java成績表;
SELECT * FROM java成績表;
注:"*"代表查詢某一張表的所有字段
查看java成績表中java成績>=60的所有學生的名字
SELECT 姓名 AS 名字 FROM java成績表 WHERE java成績>=60;
在查詢數(shù)據(jù)的時候训柴,可以通過as來給某一個字段取別名
SELECT 姓名 as username FROM java成績表? WHERE java成績>=60;
2.邏輯運算符
在mysql中常見的邏輯運算符有:與(and),或(or),非(not)
查詢java成績表中班級為b班且java成績>70的學生姓名
SELECT 姓名 FROM java成績表 WHERE 班級=’b’ java成績>70;
作業(yè):
1.創(chuàng)建一個庫,在庫下創(chuàng)建一張student表
(1)students表中的字段有:id(int類型)哑舒,stuName(varchar類型),weight(體重,float類型)幻馁。
(2)往students表中同時插入3條數(shù)據(jù)洗鸵。
(3)查詢students表中的信息越锈,為每個字段取一個別名:id(主鍵),stuName(學生名字),weight(體重),age(年齡)。
注:作業(yè)做完可以聯(lián)系本作者膘滨,可免費檢查正確與否甘凭。
第五節(jié).對表數(shù)據(jù)的增(insert)
刪(delete)改(update)查(select)
修改語法:update 表名 set 字段名1=值1,字段名2=值2....where 條件
例:
UPDATE students SET stuName='司馬平波',age=18 WHERE id=1;
全改
UPDATE students SET age=25 WHERE 1=1;
刪除students表中的所有數(shù)據(jù)(找不回來的,謹慎使用)
DELETE FROM students WHERE 1=1;
對sql語句進行分類
數(shù)據(jù)庫查詢語言:DQL(database QUERY Language)? 對表的查詢吏祸,select
數(shù)據(jù)庫定義語言:DDL(database defined Language)? create
database,drop database,create table,drop
table等
數(shù)據(jù)庫操作語言:DML(database manage Language)? update
insert,delete
DDL之操作數(shù)據(jù)庫:
添加數(shù)據(jù)庫:create database 庫名【character set utf8/gbk】
刪除指定數(shù)據(jù)庫:drop database 庫名
查詢指定庫的詳細信息:
(1)SHOW CREATE DATABASE 庫名对蒲;查看某一個數(shù)據(jù)庫詳細信息。
(2)SHOW DATABASES:查看mysql服務器下所有庫贡翘。
(3)查看:
當前用戶連接的是哪個數(shù)據(jù)庫:select DATABASE();
(4)查看指定的數(shù)據(jù)庫下有哪些表:show TABLES;
練習:創(chuàng)建一個庫,在庫下創(chuàng)建一張表(bank)
字段要求:
id(編號) int,bankNo(卡號) varchar,username() varchar,money(余額) float
第六節(jié).DDL之對表的增刪改查
創(chuàng)建一張表
CREATE TABLE 表名(字段名1 數(shù)據(jù)類型,..........);
刪除表:drop table 表名;
查詢:
(1),查詢某一張表的結構:
desc 表名
例:
DESC bank;
(2),打印某一張表sql創(chuàng)建信息:show CREATE TABLE 表名;
例:
SHOW CREATE TABLE bank
修改表:
(1),對已經存的表進行重命名:rename TABLE 舊表名 TO 新表名;
例:
RENAME TABLE yinghang TO bank;
SELECT * FROM yinghang;
(2),往已經存在的表中添加字段信息:alter TABLE 表名 ADD 字段名 數(shù)據(jù)類型;
例:
ALTER TABLE bank ADD gender VARCHAR(2);
(3),刪除某一張表中的字段:
alter TABLE 表名 DROP 被刪除的字段名蹈矮;
例:
ALTER TABLE bank DROP gender;
(4),對某一字段進行重命名:
alter TABLE 表名 CHANGE 舊字段名 新字段名 新字段名數(shù)據(jù)類型
例:
ALTER TABLE bank CHANGE aaa username VARCHAR(20);
(5),修改某一個字段數(shù)據(jù)類型長度:ALTER TABLE bank CHANGE bankNo
bankNo VARCHAR(25);
往bank表中添加一個字段birthday
ALTER TABLE bank ADD birthday DATE;
date類型只有年月日
UPDATE bank SET birthday=
'2000-2-28'WHERE id=1;
ALTER TABLE bank CHANGE birthday
birthday DATETIME;
datetime:年月日時分秒
第七節(jié).對某一個數(shù)據(jù)庫的備份與還原
第一種:
通過命令mysqldump -uroot -p密碼
需要備份的數(shù)據(jù)庫名>c:\備份后的sql腳本名;
例:
cmd--->mysqldump -uroot -proot dt55_account>c:\dt55_account_back.sql
還原備份的文件數(shù)據(jù):
首先進入到mysql環(huán)境--->創(chuàng)建一個庫---->在庫下還原數(shù)據(jù)
------>source 備份數(shù)據(jù)庫的腳本
source c:\dt55_account_back.sql
第二種通過圖形化界面工具:選中需要備份的數(shù)據(jù)庫---->右鍵--->備份/導出----轉儲到sql
訓練
創(chuàng)建出版社信息表
補充內容:
數(shù)據(jù)類型的屬性
mysql中常見的數(shù)據(jù)類型:varchar(n),float,int(n),bigint(n),date,datetime,text
默認值:default '默認值'
非空:not null
自動增長:auto_increment,盡量作用在int類型的字段上
主鍵:primary key,不能夠重復鸣驱,一張表中只有一個字段可以作為主鍵
唯一鍵:unique
兩種刪除方式的區(qū)別:
DELETE FROM students WHERE 1=1;
適用于只刪除單條數(shù)據(jù)泛鸟,刪除數(shù)據(jù)后,自增列不會從1開始
TRUNCATE TABLE students;
刪除整個表的數(shù)據(jù)踊东,如果字段是自增的北滥,則重新從1開始