日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

深入浅出mysql唐汉名_深入浅出MySQL++数据库开发、优化与管理维护+第2版+唐汉明 -- 存储引擎 - 数据类型 - 字符集和校验规则 -...

發(fā)布時(shí)間:2025/3/20 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入浅出mysql唐汉名_深入浅出MySQL++数据库开发、优化与管理维护+第2版+唐汉明 -- 存储引擎 - 数据类型 - 字符集和校验规则 -... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

create schema deepInMySql;

use deepInMySql;

-- 查看當(dāng)前默認(rèn)存儲(chǔ)引擎

show variables like '%table_type%';

-- 查看當(dāng)前數(shù)據(jù)庫支持的存儲(chǔ)引擎

show engines;

show variables like '%have%';

-- myisam

-- 創(chuàng)建表 ai

create table ai(

i bigint(20) not null auto_increment,

primary key (i)

)engine = MyISAM default charset = gbk;

create table country(

country_id smallint unsigned not null auto_increment,

country varchar(50) not null,

last_update timestamp not null default current_timestamp on update current_timestamp,

primary key (country_id)

)engine = InnoDB default charset = gbk;

-- 查看表ddl

show create table ai;

-- 修改表的存儲(chǔ)引擎

alter table ai engine = innodb;

create table myisam_char(

name char(10)

) engine = MyISAM default charset = gbk;

-- 插入記錄

insert into myisam_char values('abcde'), ('abcde '), (' abcde'), (' abcde ');

-- 查詢記錄

select name, length(name) from myisam_char;

-- innodb

create table autoincre_demo(

i smallint not null auto_increment,

name varchar(10),

primary key (i)

) engine = innodb;

insert into autoincre_demo values(1, '1'), (0, '2'), (null, '3');

select * from autoincre_demo;

-- 查詢當(dāng)前線程最后插入記錄使用的值

select last_insert_id();

insert into autoincre_demo values(4, '4');

insert into autoincre_demo values(5, '5'), (6, '6'), (7, '7');

create table autoincre_demo_myisam(

d1 smallint not null auto_increment,

d2 smallint not null,

name varchar(10),

index(d2,d1)

) engine = MyISAM;

insert into autoincre_demo_myisam(d2, name) values(2, '2'), (3, '3'), (4, '4'),(2, '2'), (3, '3'), (4, '4');

select * from autoincre_demo_myisam;

-- char 和 varchar

create table vc(

v varchar(4),

c char(4)

);

show create table vc;

insert into vc values('ab ', 'ab ');

select concat(v, '+'), concat(c, '+') from vc;

-- text 和 blob

create table t(

id varchar(100),

context text

);

insert into t values(1, repeat('haha', 100));

insert into t values(2, repeat('haha', 100));

insert into t values(3, repeat('haha', 100));

select * from t;

insert into t select * from t;

insert into t select * from t;

select * from t;

optimize table t;

delete from t where id = 1;

optimize table t;

-- 浮點(diǎn)數(shù) 和 定點(diǎn)數(shù)

create table t2(

f float(8,1)

);

desc t2;

insert t2 value(1.23456);

select * from t2;

insert t2 value(1.25456);

select * from t2;

create table test(

c1 float(10,2),

c2 decimal(10, 2)

);

insert into test values(131072.32, 131072.32);

select * from test;

-- 日期類型選擇

-- 字符集

show character set;

desc information_schema.CHARACTER_SETS;

-- 校對規(guī)則

show collation like '%gbk%';

select case when 'A' collate gbk_chinese_ci = 'a' collate gbk_chinese_ci then 1 else 0 end;

select case when 'A' collate gbk_bin = 'a' collate gbk_bin then 1 else 0 end;

select case when 'A' collate utf8_general_ci = 'a' collate utf8_general_ci then 1 else 0 end;

-- 字符集設(shè)置 -- 服務(wù)器級別 -- 數(shù)據(jù)庫級別 -- 表級別 -- 字段級別

-- 服務(wù)器字符集和校對規(guī)則

show variables like 'character_set_server';

show variables like 'collation_server';

-- 數(shù)據(jù)庫字符集和校對規(guī)則

show variables like 'character_set_database';

show variables like 'collation_database';

-- 表字符集和校對規(guī)則

show create table test;

-- 列字符集和校對規(guī)則

-- 連接字符集和校驗(yàn)規(guī)則

-- 字符集的修改

-- alter database character set ***

-- alter table tablename character set ***

-- 這兩個(gè)命令都沒有更新已有記錄的字符集,而只是對新創(chuàng)建的表或記錄生效

-- 已有記錄的字符集調(diào)整,需要先將數(shù)據(jù)導(dǎo)出,經(jīng)過適當(dāng)?shù)恼{(diào)整重新導(dǎo)入后才可完成。

-- 模擬將latin1字符集的數(shù)據(jù)庫修改成GBK字符集的數(shù)據(jù)庫的過程

-- 1. 導(dǎo)出表結(jié)構(gòu)

-- mysqldump -uroot -p --default-character-set=gbk -d databasename > createtab.sql

-- 其中--default-character-set=gbk表示設(shè)置以什么字符集連接,-d表示只導(dǎo)出表結(jié)構(gòu),不導(dǎo)出數(shù)據(jù)。

-- 2. 手動(dòng)修改createtab.sql 中表結(jié)構(gòu)定義中的字符集為新的字符集。

-- 3. 確保記錄不再更新,導(dǎo)出所有記錄

-- mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 databasename > data.sql

-- --quick 該選項(xiàng)用于轉(zhuǎn)儲(chǔ)大的表。它強(qiáng)制mysqldump從服務(wù)器一次一行地檢索表中的行而不是檢索所有行,并在輸出前將它緩存到內(nèi)存中。

-- --extended-insert 使用包括幾個(gè)VALUES列表的多行INSERT語法。這樣是轉(zhuǎn)儲(chǔ)文件更小,重載文件時(shí)可以加速插入。

-- --no-create-info 不導(dǎo)出每個(gè)轉(zhuǎn)儲(chǔ)表的CREATE TABLE語句。

-- --default-character-set=latin1 按照原有的字符集導(dǎo)出數(shù)據(jù),這樣導(dǎo)出的文件中,所有中文都是可見的,不會(huì)保存成亂碼。

-- 4. 打開data.sql, 將SET NAMES latin1 修改成 SET NAMES gbk。

-- 5. 使用新的字符集創(chuàng)建新的數(shù)據(jù)庫。

-- create dateabase databasename default charset gbk;

-- create database deepInMySql2 default charset gbk;

-- 6. 創(chuàng)建表,執(zhí)行createtab.sql

-- mysql -uroot -p databasename < createtab.sql

-- mysql -uroot -p deepInMySql2 < createtab.sql

-- 7. 導(dǎo)入數(shù)據(jù),執(zhí)行data.sql

-- mysql -uroot -p databasename < data.sql

-- mysql -uroot -p deepInMySql2 < data.sql

-- 第9章

總結(jié)

以上是生活随笔為你收集整理的深入浅出mysql唐汉名_深入浅出MySQL++数据库开发、优化与管理维护+第2版+唐汉明 -- 存储引擎 - 数据类型 - 字符集和校验规则 -...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。