日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql的命令行操作

發布時間:2023/12/20 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql的命令行操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL 命令行?

第一招、mysql服務的啟動和停止
net stop mysql
net start mysql

第二招、登陸mysql
語法如下: mysql -u用戶名 -p用戶密碼
鍵入命令mysql -uroot -p回車后提示你輸入密碼,輸入12345,然后回車即可進入到mysql中了,mysql的提示符是:
mysql>
注意,如果是連接到另外的機器上,則需要加入一個參數-h機器IP

第三招、增加新用戶
格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by "密碼"
如,增加一個用戶user1密碼為password1,讓其可以在本機上登錄,并對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入mysql,然后鍵入以下命令:
grant select,insert,update,delete on *.* to?
user1@localhost?Identified by"password1";
如果希望該用戶能夠在任何機器上登陸mysql,則將localhost改為"%"
如果你不想user1有密碼,可以再打一個命令將密碼去掉。
grant select,insert,update,delete on mydb.* to?
user1@localhost?identified by"";

第四招:操作數據庫
登錄到mysql中,然后在mysql的提示符下運行下列命令,每個命令以分號結束。
1
顯示數據庫列表。
show databases;
缺省有兩個數據庫:mysqltest mysql庫存放著mysql的系統和用戶權限信息,我們改密碼和新增用戶,實際上就是對這個庫進行操作。
2
顯示庫中的數據表:
use mysql;
show tables;
3
顯示數據表的結構:
describe
表名;
4
建庫與刪庫:
create database
庫名;
drop database
庫名;
5
建表:
use
庫名;
create table
表名(字段列表);
drop table
表名;
6
清空表中記錄:
delete from
表名;
7
顯示表中的記錄:
select * from
表名;

第五招、導出和導入數據
1.
導出數據:
mysqldump --opt test > mysql.test
即將數據庫test數據庫導出到mysql.test文件,后者是一個文本文件
如:mysqldump -u root-p123456 --databases dbname > mysql.dbname
就是把數據庫dbname導出到文件mysql.dbname中。
2.
導入數據:
mysqlimport -u root -p123456 < mysql.dbname

不用解釋了吧。
3.
將文本數據導入數據庫:
文本數據的字段數據之間用tab鍵隔開。
use test;
load data local infile "
文件名" intotable 表名;
1:
使用SHOW語句找出在服務器上當前存在什么數據庫:?
mysql> SHOW DATABASES;?
2:2
、創建一個數據庫MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;?
3:
選擇你所創建的數據庫?
mysql> USE MYSQLDATA; (
按回車鍵出現Databasechanged 時說明操作成功!)
4:
查看現在的數據庫中存在什么表?
mysql> SHOW TABLES;
5:
創建一個數據庫表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:
顯示表的結構:?
mysql> DESCRIBE MYTABLE;?
7:
往表中加入記錄?
mysql> insert into MYTABLE values ("hyq","M");?
8:
用文本方式將數據裝入數據庫表中(例如D:/mysql.txt
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
9:
導入.sql文件命令(例如D:/mysql.sql
mysql>use database;
mysql>source d:/mysql.sql;?
10:
刪除表
mysql>drop TABLE MYTABLE;?
11:
清空表
mysql>delete from MYTABLE;
12:
更新表中數據
mysql>update MYTABLE set sex="f" where name='hyq'; 13
:備份數據庫mysqldump -u root 庫名>xxx.data14

2:連接到遠程主機上的MYSQL?
  假設遠程主機的IP為:110.110.110.110,用戶名為root,密碼為abcd123。則鍵入以下命令:

mysql -h110.110.110.110 -uroot -pabcd123

  (注:uroot可以不用加空格,其它也一樣)

3、退出MYSQL命令: exit?

以上內容出自:http://www.iteye.com/topic/469868

?

MySql外鍵設置詳解

(1) 外鍵的使用:

外鍵的作用,主要有兩個:?
一個是讓數據庫自己通過外鍵來保證數據的完整性和一致性
一個就是能夠增加ER圖的可讀性?
有些人認為外鍵的建立會給開發時操作數據庫帶來很大的麻煩.因為數據庫有時候會由于沒有通過外鍵的檢測而使得開發人員刪除,插入操作失敗.他們覺得這樣很麻煩?
其實這正式外鍵在強制你保證數據的完整性和一致性.這是好事兒.?
例如:?
有一個基礎數據表,用來記錄商品的所有信息。其他表都保存商品ID。查詢時需要連表來查詢商品的名稱。單據1的商品表中有商品ID字段,單據2的商品表中也有商品ID字段。如果不使用外鍵的話,當單據1,2都使用了商品ID=3的商品時,如果刪除商品表中ID=3的對應記錄后,再查看單據1,2的時候就會查不到商品的名稱。?
當表很少的時候,有人認為可以在程序實現的時候來通過寫腳本來保證數據的完整性和一致性。也就是在刪除商品的操作的時候去檢測單據1,2中是否已經使用了商品ID為3的商品。但是當你寫完腳本之后系統有增加了一個單據3 ,他也保存商品ID找個字段。如果不用外鍵,你還是會出現查不到商品名稱的情況。你總不能每增加一個使用商品ID的字段的單據時就回去修改你檢測商品是否被使用的腳本吧,同時,引入外鍵會使速度和性能下降。


(2) 添加外鍵的格式:?
ALTER TABLE yourtablename?
ADD [CONSTRAINT 外鍵名] FOREIGN KEY [id](index_col_name, ...)?
REFERENCES tbl_name (index_col_name, ...)?
[ON DELETE {CASCADE | SET NULL | NO ACTION | RESTRICT}]?
[ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT}]?
說明:?
on delete/on update,用于定義delete,update操作.以下是update,delete操作的各種約束類型:?
CASCADE:?
外鍵表中外鍵字段值會被更新,或所在的列會被刪除.?
RESTRICT:?
RESTRICT也相當于no action,即不進行任何操作.即,拒絕父表update外鍵關聯列,delete記錄.?
set null:?
被父面的外鍵關聯字段被update ,delete時,子表的外鍵列被設置為null.?
而對于insert,子表的外鍵列輸入的值,只能是父表外鍵關聯列已有的值.否則出錯.

外鍵定義服從下列情況:(前提條件)?
1)?
所有tables必須是InnoDB型,它們不能是臨時表.因為在MySQL中只有InnoDB類型的表才支持外鍵.?
2)?
所有要建立外鍵的字段必須建立索引.?
3)?
對于非InnoDB表,FOREIGN KEY子句會被忽略掉。?
注意:?
創建外鍵時,定義外鍵名時,不能加引號.?
如: constraint 'fk_1' 或constraint "fk_1"是錯誤的?


(3) 查看外鍵:?
SHOW CREATE TABLE ***;可以查看到新建的表的代碼以及其存儲引擎.也就可以看到外鍵的設置.?
刪除外鍵:?
alter table drop foreign key '
外鍵名'.?
注意:?
只有在定義外鍵時,用constraint外鍵名 foreign key .... 方便進行外鍵的刪除.?
若不定義,則可以:?
先輸入:alter table drop foreign key -->會提示出錯.此時出錯信息中,會顯示foreignkey的系統默認外鍵名.--->?
用它去刪除外鍵.

(4) 舉例


實例一:?
4.1?
CREATE TABLE parent(id INT NOT NULL,?
PRIMARY KEY (id)?
) TYPE=INNODB; -- type=innodb 相當于 engine=innodb?
CREATE TABLE child(id INT, parent_id INT,?
INDEX par_ind (parent_id),?
FOREIGN KEY (parent_id) REFERENCES parent(id)?
ON DELETE CASCADE?
) TYPE=INNODB;?
向parent插入數據后,向child插入數據,插入時,child中的parent_id的值只能是parent中有的數據,否則插入不成功;?
刪除parent記錄時,child中的相應記錄也會被刪除;-->因為: on delete cascade?
更新parent記錄時,不給更新;-->因為沒定義,默認采用restrict.?
4.2?
若child如下:?
mysql>?
create table child(id int not null primary key auto_increment,parent_id int,?
index par_ind (parent_id),?
constraint fk_1 foreign key (parent_id) references?
parent(id) on update cascade on delete restrict)?
type=innodb;?
用上面的:?
1).?
則可以更新parent記錄時,child中的相應記錄也會被更新;-->因為: on update cascade?
2).?
不能是子表操作,影響父表.只能是父表影響子表.?
3).?
刪除外鍵:?
alter table child drop foreign key fk_1;?
添加外鍵:?
alter table child add constraint fk_1 foreign key (parent_id) references?
parent(id) on update restrict on delete set null;?


(5) 多個外鍵存在:

product_order表對其它兩個表有外鍵。?
一個外鍵引用一個product表中的雙列索引。另一個引用在customer表中的單行索引:?
CREATE TABLE product (category INT NOT NULL, id INT NOT NULL,?
price DECIMAL,?
PRIMARY KEY(category, id)) TYPE=INNODB;?
CREATE TABLE customer (id INT NOT NULL,?
PRIMARY KEY (id)) TYPE=INNODB;

CREATE TABLE product_order (no INT NOTNULL AUTO_INCREMENT,?
product_category INT NOT NULL,?
product_id INT NOT NULL,?
customer_id INT NOT NULL,?
PRIMARY KEY(no),?
-- 雙外鍵?
INDEX (product_category, product_id),?
FOREIGN KEY (product_category, product_id)?
REFERENCES product(category, id)?
ON UPDATE CASCADE ON DELETE RESTRICT,?
-- 單外鍵?
INDEX (customer_id),?
FOREIGN KEY (customer_id)

REFERENCES customer(id)) TYPE=INNODB;

(6) 說明:

1.若不聲明on update/delete,則默認是采用restrict方式.?
2.對于外鍵約束,最好是采用: ON UPDATECASCADE ON DELETE RESTRICT 的方式.?

總結

以上是生活随笔為你收集整理的Mysql的命令行操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。