mysql唯一約束指令 mysql使用總結

2021-10-20 23:01:46 字數 2525 閱讀 5180

1,mysql唯一性約束:

用alter命令,**如下:(表名為user,欄位為name)

alter table user add unique key(`name`);

2,mysql中刪除乙個表中的某字段的unique key的語法:

alter table `table123212` drop index `name1233221`;

3,mysql增加乙個字段:

alter table `table123212` add new_field_id int(5) unsigned default 0 not null auto_increment;

4,mysql登陸遠端資料庫:

mysql -uroot -phehe -h172.22.100.30 -p 3306 -d mydatabase;

5,mysql主鍵自增:

create table t_task_alarm(id bigint(20) primary key not null auto_increment,task_id varchar(64) not null,alarm_id varchar(64) not null);

6,mysql在t_task_alarm中插入資料(當task_id存在於t_task這張表中時):

可參見stackoverflow

insert into t_task_alarm(task_id,alarm_id)select * from(select 'vvhphodyzh3w','asd')as tmp where exists(select task_id from t_task where task_id='vvhphodyzh3w');

mysql插入了('vvhphodyzh3w','asd');

7,查詢t_stu這張表的外來鍵關係:

select * from information_schema.key_column_usage where referenced_table_name='t_stu';

8,檢視檢視view:

show table status where comment='view';

或者select * from information_schema.tables where table_schema='yourdatabasename' and table_type='view';

(說明:這種方法通過系統表查詢,效果同上,顯示資訊更詳細。如果不能正確顯示結果,可能是大小寫的問題,mysql在不同系統平台不同配置引數下的顯示結果可能不同,注意這點。)

9,mysql插入datetime型別的資料:

insert into t_stu(name,date,value) values ('alice','2009-06-08 23:53:17','98');

10,mysql replace into用法:

首先判斷資料是否存在;如果不存在,則插入;如果存在,則更新。

replace into t(id, update_time) values(1, now());

或者replace into t(id, update_time) select 1, now();

11,mysql不支援full outer join,對於不支援全連線full join 的資料庫,可以使用:

select a.col1,a.col2,b.col3 from tab1 a left [outer] join tab2 b on a.pk_tab1 = b.pk_tab1 union all select a.col1,a.col2,b.col3 from tab1 a right [outer] join tab2 b on a.pk_tab1 = b.pk_tab1;

12,mysqldump匯出匯入:

匯出用 mysqldump .. > xx.sql

匯入用 mysql .. < xx.sql

mysqldump -uroot -ppassword -hlocalhost test1>test.sql

mysql -uroot -ppassword -hlocalhost test1

13,mysql移動列的順序:

把user_name移動到password後面:

alter table employee modify user_name varchar(100) after password;

14,mysql的order by:

《sql必知必會》裡面說到order by必須放在sql語句的最後面,但是在有limit的情況下就變了,如果使用

select * from hello limit 0,99 order by create_time;

出錯只能將limit放在order by後面:

select * from hello order by create_time limit 0,99;

15,mysql自動補全命令:

在啟動時使用 mysql –auto-rehash

可以在配置檔案.bashrc或者.zshrc上加上

alias mysql='mysql --auto-rehash'

MySQL 新增唯一約束和聯合唯一約束

在mysql資料庫中,經常會碰到由於業務需要新增唯一鍵約束,唯一鍵約束,可以在乙個列上新增約束,也可以在多個列上新增唯一約束。1.建表時加上唯一性約束 create table t user id int 11 notnull auto increment username varchar 18 n...

mysql 唯一約束 Mysql 唯一性約束新增

一 單列唯一約束 1.建表時加上唯一性約束 create table t user id int 11 not null auto increment,username varchar 18 not null unique,password varchar 18 not null,primary k...

唯一約束,主鍵約束,唯一索引

1.unique約束和primary key約束用來保證同一表中指定的列上沒有重複值,這兩個約束都產生唯一索引確保資料一致性,預設情況下,unique約束產生唯一的非聚集索引,primary key約束產生唯一的聚集索引。primary key約束比unique約束嚴格 primary key列不允...