ディレクトリ
ライブラリの最初に、操作
(A)によって作成
create database 数据库名称 charset utf8;
# 命名规范
# 1. 可以有字母、数字、下划线、@、#、$
# 2. 区分大小写
# 3. 唯一性
# 4. 不能使用关键字
# 5. 不能单独使用数字
# 6. 最长128位
(B)ドロップを削除
drop database 数据库名称;
(iii)の文字セットを変更する変更
# 删除在增加
# 如果数据库中有数据的话,直接drop会导致数据库的数据丢失
# 线上环境,不能直接删除数据,在删除之前,需要进行备份
alter database 数据库名称 charset utf8 # 修改库的编码
(D)調査ショー
show databases; #查看当前所有库
show create database 数据库名; # 展示单个库
select database(); # 查看当前所在库
(5)データベースの使用
use 数据库名; # 切换到库目录
第二に、手術台
(A)整合性制約
- AUTO_INCREMENT:制約フィールドが自動成長である1
- 主キー:バインドされている一意の識別子、列の値を繰り返すことはできませんが、主キーインデックスに相当し、クエリをスピードアップ
- 符号なし:デフォルトのタイプの符号付き数値の範囲(負の数を有する)、符号なしの制約(負ではありません)
- NOT NULL:フィールドを識別空にすることはできません
- デフォルト:設定されていない場合は、挿入データは、デフォルト値が自動的に追加されたときに、デフォルト値を指定
- ZEROFILL:0で埋め
- 外部キー:外部キー、あなたはマルチテーブル作成を使用します
- ユニーク:1で作成した複数のテーブルの一意の識別子
# 例子1:
create table t2 (
id int auto_increment primary key,
name char(10)
)charset=utf8;
# 例子2:
create table t3 (
id int unsigned auto_increment primary key,
name char(10) not null default 'xxxx',
age int not null default 0
)charset-utf8;
(II)データ型
デジタルタイプ
整数型
TINYINT、SMALLINT、MEDIUMINT、INT、BIGINTは、整数型、一般的に使用される整数です。
フロート
float[m,d]
:Mは、総数255の最大値の数を表し、小数精度の増加が不正確になると、Dは、小数点以下の桁数、最大30でありますdouble[m,d]
:Mは、総数255の最大値の数を表し、dは小数点以下の桁数、30の最大値であり、精度はフロートよりも大きいが、それは正確ではありませんdecimal[m,d]
:Mは桁数の合計、65の最大値を表し、Dは常に小数精度の増加に伴って、正確な小数点以下の桁数、最大30であります
# 例子1 : create table t5( id int auto_increment primary key, salary decimal(16,10), num float )charset=utf8; # 例子2(刚好10位) : insert into t5 (salary, num) values(500023.2312345678, 5000.2374837284783274832); # 例子3 (少于10位) insert into t5(salary,num) values (500023.231234567, 5000.2374837284783274832); # 例子4 (多于10位) insert into t5 (salary,num) values (500023.23123456789, 5000.2374837284783274832);
弦
CHAR(長さ):長さ(0〜255)の範囲内
検索するときに関係なく挿入されているどのように多くの文字、永遠に固定デューティ規定の長さ(スペースが入ります)、末尾のスペースは削除されません
シナリオ:IDカード、電話番号、MD5暗号化された値
VARCHAR(長さ):可変長、範囲(0〜65535)
文字列の挿入長さが占めるバイト数に応じて文字列のプレフィックスバイトのサイズを保持するために増加して計算されます
注意:あなたは、データの挿入サイズは、一般的にはvarchar(255)を使用することをお勧めします判別できない場合
create table t6( id int unsigned auto_increment primary key, name char(10) not null default 'xxx', )charset=utf8; insert into t6 (name) values ('hello') # 只能输入10个字节以内 insert into t6(name) values ('sadfasdfsafafdsadfdasf') # 报错,超出范围
日付と時刻タイプ
- 年
- 日付
- 時間
- 日付時刻
- タイムスタンプ
一般的な使用日時
create table t8( d date, t time, dt datetime ); select * from t8;
列挙とコレクション
- 列挙:ラジオ、与えられた範囲内でのみ選択された値、例えば性別など
- 設定:複数の選択肢は、あなたが与えられた範囲内の1つまたは複数の値を選択することができます(趣味)
create table t9( id int auto_increment primary key, gender enum('male','female') )charset=utf8; insert into t9 (gender) values('male'); inser into t9 (gender) values ('female')l insert into t9(gender) values ('sdfasf0') # 报错
(C)の増加
(1)CREATE TABLEを増加させます
# []内不是必填内容
create table 表名(
字段名 列类型 [约束条件], # 记住加逗号
····
字段名 列类型 [约束条件] #最后一行不加逗号
)charset=utf8; # 加分号
# 例子
#创建编码为utf8,字段为id、name的表t1
create table t1(
id int,
name char(5)
)charset=utf8;
# 增加数据
insert into t1 (id,name) values (1,'wick');
# 查询数据
select * from t1; # *代表查询所有的列
(2)アドオンを変更するフィールドを増やします
最後の1がデフォルトで追加されます
alter table 表名 add 字段名 列类型 [约束条件], add 字段名 列类型 [约束条件]; # 默认添加在最后一列之后 alter table t88 add name varchar(32) not null default '';
最初の列の追加(第一)
alter table 表名 add 字段名 列类型 [约束条件] first; # 添加在首行 alter table t88 add name3 varchar(32) not null default '' first;
指定した場所に追加(後)
alter table 表名 add 字段名 列类型 [约束条件] after 字段名; # 添加在首行 alter table t88 add name3 varchar(32) not null default '' after d;
(IV)の変化
(1)テーブル名を変更する名前を変更変更
alter table 旧表名 rename 新表名;
# 指令
alter table t8 rename t88;
(2)フィールドを変更
1.変更
# 只可以修改字段的类型和约束条件
alter table 表名 modify 字段名 类型 [约束条件]
# 例子
alter table t88 modify name2 char(20);
2.変更
# 可以修改字段、类型、约束条件
alter table 表名 change 旧字段名 新字段名 新数据类型 [约束条件]
# 例子
alter table t88 change name2 name22 varchar(32) not null default '';
alter table t88 change name22 name23;
(E)を削除
オンライン無効にします
(1)表降下を削除
drop table 表名
# 例子:
drop table t9;
(2)フィールドはドロップを変更削除
alter table 表名 drop 字段名;
# 例子
alter table t88 drop name4;
(VI)の調査ショー
show tables;
:現在のすべてのライブラリテーブルを見ます
show create table 表名;
:テーブルの作成文を見ます
(VII)は同様に作成し、テーブルの構造をコピーします
テーブル作成文で、コピー、実行を見ます
show create table t88;
実現したいです
create table 新表名 like 旧表名;
create table t89 like t88;
第三に、操作履歴テーブル
挿入により、(A)
insert into 表名(列1,列2) values(值1,值2);
# 例子
insert into t1(id,name) values(1,'nick');
insert into t1(id,name) values(1,'tank'),(3,'zekai');
(B)から選択チェック
(1)ここで、条件
- 比較演算子:> <> = <= <> =!
- 80及び100を含む閉区間、80〜100:80と100との間
- (23,45,23)において、値は、23または45または23であります
- %「をlike'wick:芯の冒頭で、%は、任意の数の文字、文字のロゴが表します_
- 論理演算子:とか
select 列1 , 列2 from 表名;
select * from 表名; # 代表所有的列
# 例子
select * from t66 where id>30 and id<40;
select * from t66 where id between 31 and 33;
select * from t66 where id in (23,34,11);
select * from t66 where name like 'x%'; # x开头的
select * from t66 where name like '%x'; # x结尾的
select * from t66 where name like '%x%'; # 包含x的,不要用
# distinct避免重复
select distinct name from t66;
# 四则运算,不要用
select name, age*10 from t3;
(C)削除します、切り捨て
delete from 表名; #删除表中所有数据
delete from 表名 where 条件;
truncate 表名; # 没有where文件的,
# 例子
delete from t5 where id=1;
delete from t5 where id>=1;
delete from t5 where id>=1 and id<10;
違いを切り捨てて、削除します。
- 削除削除した後、主キープラス1からのデータを挿入し、1つのTRUNCATEから始まります
- ラインで同等の行を削除するには削除し、削除するために、すべてを選択するために、同等の切り捨て
(iv)の変化更新組
update 表名 set 列名1= 新值1,列名2=新值2 where 条件;
# 例子
uodate t66 set name = 'xxxx' where id = 30;
update t66 set name='xxxx' where id>20 or name='zekai';
サプリメント
- SQLコマンドを追加する必要があります
;
tee D:/mylog.log
:自動的にファイルに次のすべてのSQL文と結果に