數(shù)據(jù)庫學(xué)習(xí)(mysql)
一.數(shù)據(jù)庫的操作(DDL)
1. create database if not exists db1 character set utf8;
創(chuàng)建數(shù)據(jù)庫db1,(如果不存在則創(chuàng)建,并指定字符集為utf-8)注意寫的時(shí)候是utf8,而不是utf-8
show databases;
查詢所有的數(shù)據(jù)庫
2.查詢數(shù)據(jù)庫創(chuàng)建語句
show create database db1;
3.修改數(shù)據(jù)庫字符集(修改數(shù)據(jù)庫的字符集為gbk)
alter database db1 character set gbk;
4.刪除數(shù)據(jù)庫(危險(xiǎn)操作)
drop database db1
drop database if exists db1 防止報(bào)錯(cuò),先判斷,后刪除
5.使用數(shù)據(jù)庫
use db1;
6.查詢正在使用數(shù)據(jù)庫的名稱
select database();
二.數(shù)據(jù)表的操作(DDL:數(shù)據(jù)定義語言)
1. 查詢數(shù)據(jù)表
show tables;
2.查詢表結(jié)構(gòu)
desc db1;
3.創(chuàng)建表
create table 表名(
列名1? 數(shù)據(jù)類型1,
列名2? 數(shù)據(jù)類型2
)
數(shù)據(jù)類型:int(整數(shù)),long(小數(shù)),date(yyyy-MM-dd),datetime(yyyy-mm-dd HH-mm-ss),timestamp(時(shí)間戳類型)varchar(字符串)
datetime與timestamp區(qū)別:timestamp如果不給這個(gè)字段賦值或者賦值為null則默認(rèn)使用當(dāng)前系統(tǒng)時(shí)間默認(rèn)賦值;
創(chuàng)建表實(shí)例:
create table Student(
id int,
name varchar(32),
age int,
score double(4,1),? --表示最多4位,小數(shù)點(diǎn)后取一位,如:100.0
birthday date,? ? ? ? --出生日期不用到時(shí)分秒,使用date
insert_time timestamp? --創(chuàng)建時(shí)間
);
4.刪除表
drop table student;
drop table if exists student;? 判斷是否存在
5.復(fù)制表
create table student2 like student;
6.修改表
修改表的名稱:alter table? student rename? to? student2;? 修改student的表明位student2
查看表的字符集:show create table student;
修改表的字符集:alter table student character set utf8;
添加一列:alter table student add 列名 數(shù)據(jù)類型;
修改列名:
第一種方式:alter table student change? name name2 varchar(10); 修改列名與數(shù)據(jù)類型
第二種方式:alter table student modify name varchar(10); 只修改數(shù)據(jù)類型
刪除列名:alter table student drop name2;
三.數(shù)據(jù)表的增刪改操作(DML:數(shù)據(jù)操縱語言)
1. 增加數(shù)據(jù)
insert into 表名(列名1,列名2)? values(值1,值2);
實(shí)例:insert into student(age,name) values(20."張三");
注意事項(xiàng):
1.列名與值一一對應(yīng)
2.如果給所有值添加,可以不寫列名
3.除了數(shù)據(jù)類型,其他字符類型需要使用引號(hào)(單引號(hào)或則雙引號(hào))
2.刪除數(shù)據(jù)
delete from student where id=1;
注意:
1.如果不加條件,則刪除所有數(shù)據(jù)
2.truncate 刪除,效率更高,推薦使用,原理是先drop table,再創(chuàng)建一張空表,delete則是一條? 一條數(shù)據(jù)刪除,但是delete支持回滾,更加安全
3.修改數(shù)據(jù)
update student set name = '李四' where id = 2;