3.1.1 插入表資料
一旦建立了資料庫和表,下一步就是向表裡插入資料。通過insert或replace語句可以向表中插入一行或多行資料。
語法格式:
insert [low_priority | delayed |high_priority] [ignore]
[into] tbl_name [(col_name,...)]
values (,...),(...),...
| set col_name=, ...
[ on duplicate key update col_name=expr, ... ]
說明:tb1_name:被操作的表名。
col_name:需要插入資料的列名。如果要給全部列插入資料,列名可以省略。如果只給表的部分列插入資料,需要指定這些列。對於沒有指出的列,它們的值根據列預設值或有關屬性來確定,mysql處理的原則是:
(1)具有identity屬性的列,系統生成序號值來唯一標誌列。
(2)具有預設值的列,其值為預設值。
(3)沒有預設值的列,若允許為空值,則其值為空值;若不允許為空值,則出錯。
(4)型別為timestamp的列,系統自動賦值。
values子句:包含各列需要插入的資料清單,資料的順序要與列的順序相對應。若tb1_name後不給出列名,則在values子句中要給出每一列(除identity和timestamp型別的列)的值,如果列值為空,則值必須置為null,否則會出錯。values子句中的值:
(1)expr:可以是乙個常量、變數或乙個表示式,也可以是空值null,其值的資料型別要與列的資料型別一致。例如,列的資料型別為int,插入的資料是『aaa』就會出錯。當資料為字元型時要用單引號括起。
(2)default:指定為該列的預設值。前提是該列原先已經指定了預設值。
如果列清單和values清單都為空,則insert會建立一行,每個列都設定成預設值。
insert語句支援下列修飾符:
low_priority:可以使用在insert、delete和update等操作中,當原有客戶端正在讀取資料時,延遲操作的執行,直到沒有其他客戶端從表中讀取為止。
delayed:若使用此關鍵字,則伺服器會把待插入的行放到乙個緩衝器中,而傳送insert delayed語句的客戶端會繼續執行。如果表正在被使用,則伺服器會保留這些行。當表空閒時,伺服器開始插入行,並定期檢查是否有新的讀取請求(僅適用於myisam、memory和archive表)。
為了讓客服端能識別漢字
set character_set_client=gb2312;
為了讓結果不出現亂碼
set character_set_results=gb2312;
create table xs
(學號char(6) notnull primary key,
姓名char(8),
專業名char(10),
出生日期date,
總學分tinyint,
**blob,
備註text);
插入記錄命令
insert into 表名(欄位名1,欄位名2.。。。)
values(值1,值2.。。。);
081101王林計算機1 1990-02-10 50null null
insert into xs(學號,姓名,專業名,出生日期,總學分,**,備註)
values('081101','王林','計算機','1990-02-10',50,null,null);
或者:(如果提供的值的個數和順序與表中字段一致,可以省略欄位名)
insert into xs values('081101','王林','計算機','1990-02-10',50,null,null);
或者:如果只給表中的部分字段插入值時,要指明欄位名
insert into xs(學號,姓名,專業名,出生日期,總學分)
values('081101','王林','計算機','1990-02-10',50);
081102李四
insert into xs(學號,姓名)values('081102','李四');
081103王五軟體工程1990-10-10
insert into xs values('081103','王五','軟體工程','1990-10-10',null,null,null);
insert into xs(學號,姓名,專業名,出生日期) values('081103','王五','軟體工程','1990-10-10');
1.建立資料庫
create database 庫名
create database if not exists 庫名
建立庫的同時指定字符集,校對規則
create database mydb character set utf8
collateutf8-general_ci;
顯示所有資料庫
show databases;
顯示建立資料庫的定義資訊
show create dabasese 庫名
2.修改資料庫,只能改引數
alter database 庫名characterset gb2312 collate gb2312_chinese_ci;
3.刪除資料庫
drop database 庫名
drop database if exists 庫名
4.建立表
建立表就是建立表的結構:包含哪些字段(屬性),欄位名,字段型別
create table 表名
(欄位名1 型別,
欄位名2 型別,
。。。。 )
建立乙個學生表
xs:id name ***
確定你的表建在哪個庫中,把此庫變為當前資料庫
use 庫名;
create table xs (
id int,
name char(10),
*** char(2) );
5.修改表結構:增加字段修改舊欄位刪除字段
alter table 表名
add 欄位名型別(寬度)//增加字段
modify 舊欄位型別//修改舊欄位
drop 欄位名//刪除字段
change 舊欄位名新字段內容//改列名
在學生表中增加birthday欄位
alter table xs
add birthday date;
alter table xs
modify name varchar(20);
alter table xs
change name sname varchar(20);
6.修改表名
rename table 舊名to 新名
7 複製表
create table 表名like 表名1
8 刪除表
drop table 表名
刪除記錄:
delete from 表名//刪除表中的所有記錄,此表變為了空表
delete from 表名where 條件//刪除表中符合條件的記錄
delete from xs where 學號='081102';
droptable xs ; //刪除整張表,結構和記錄
truncate table 表名//快速刪除表中的所有記錄
修改記錄(更新記錄)
update 表名
set 欄位名1=值1 [,欄位名2=值2.。。。]
where 條件
insert
delete
update
MySQL 資料表插入記錄
建立完資料表之後可以檢視資料表的具體字段資訊 show columns from tb name 例如檢視上次建立的資料表的字段資訊 有了字段,當然要有記錄 不然只是一張空表 插入記錄 方法一 insert tb name column name,values val,tb name括號裡面跟的是欄...
資料表的匹配性插入
資料庫的匹配插入字段值。在系統互動時,業務表進行登記交易流水是最基礎也是極其重要的步驟,流水登記的質量直接影響著後續的業務。一般我們在資料庫登記時,常用的操作是寫乙個sql,例如 insert into table name 列1,列2,values 值1,值2,我們將要登記的列逐個羅列出來,後面賦...
MySQL建立資料表和插入資料
首先開啟資料庫管理器 選擇乙個資料庫 然後開啟查詢介面 如下圖 然後我們輸入 建立 解釋create table if not exists 要建立的表名 建立表 sno varchar 20 not null,建立表結構 字段 sno 是欄位名 varchar 是資料型別 not null 是否是...