1. Stellen Sie eine Verbindung zur Datenbank her
Format: MySQL -h Hostadresse -u Benutzername -p Benutzerkennwort
1.1 Stellen Sie eine Verbindung zu MYSQL auf diesem Computer her.
Öffnen Sie zuerst ein DOS-Fenster, geben Sie dann das Verzeichnis mysqlbin ein und geben Sie dann den Befehl mysql -u root -p ein. Nachdem Sie die Eingabetaste gedrückt haben, werden Sie aufgefordert, Ihr Passwort einzugeben Vor dem Benutzernamen dürfen Leerzeichen stehen, vor dem Passwort dürfen jedoch keine Leerzeichen stehen, andernfalls werden Sie aufgefordert, Ihr Passwort erneut einzugeben.
Wenn MYSQL gerade erst installiert wurde, hat der Superuser Root kein Passwort, also drücken Sie einfach die Eingabetaste, um MYSQL aufzurufen. Die MYSQL-Eingabeaufforderung lautet: mysql>
mysql -h110.110.110.110 -u root -p 123; (Hinweis: Zwischen u und root muss kein Leerzeichen eingefügt werden, und das Gleiche gilt für andere)
1.3 Beenden Sie den MYSQL-Befehl: exit (return car)
Format: Gewähren Sie select on Database.* an Benutzername@Login-Host, der durch „Passwort“ identifiziert wird
2.1 Fügen Sie einen Benutzer test1 hinzu mit dem Passwort abc, sodass er sich auf jedem Host anmelden und Abfrage-, Einfügungs-, Änderungs- und Löschberechtigungen für alle Datenbanken haben kann.
grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “abc”;Das Hinzufügen von Benutzern ist jedoch sehr gefährlich. Wenn Sie möchten, dass jemand das Passwort von test1 kennt Sie können sich von jedem Computer im Internet aus bei Ihrer MySQL-Datenbank anmelden und mit Ihren Daten machen, was Sie wollen. Die Lösung finden Sie in Abschnitt 2.2.
2.2 Fügen Sie einen Benutzer test2 mit dem Passwort abc hinzu, sodass er sich nur bei localhost anmelden und die Datenbank mydb abfragen, einfügen, ändern und löschen kann (localhost bezieht sich auf den lokalen Host, also den Host, auf dem). Die MYSQL-Datenbank befindet sich) ), sodass der Benutzer, selbst wenn er das Passwort von test2 kennt, nicht direkt über das Internet auf die Datenbank zugreifen kann, sondern nur über die Webseite auf dem MYSQL-Host darauf zugreifen kann.
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”;Wenn Sie nicht möchten, dass test2 ein Passwort hat, können Sie einen anderen Befehl eingeben, um das Passwort zu entfernen.
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”3. Betrieb der Datenbank 3.1 Erstellen einer Datenbank
Hinweis: Sie müssen zuerst eine Verbindung zum MySQL-Server herstellen, bevor Sie eine Datenbank erstellen
Befehl: Datenbank erstellen 620ea7ce1d9be67b5e0baf94e231a414
Beispiel 1: Erstellen Sie eine Datenbank mit dem Namen xhkdb
mysql> create database xhkdb;Beispiel 2: Erstellen Sie eine Datenbank und weisen Sie Benutzer zu
①CREATE DATABASE Datenbankname;
②GRANT SELECT,INSERT,UPDATE, DELETE, CREATE, DROP, ALTER ON Database Name.* TO username@localhost IDENTIFIED BY 'password';
③SET PASSWORD FOR 'database name'@'localhost' = OLD_PASSWORD('password');
Führen Sie 3 Befehle aus der Reihe nach, um die Datenbankerstellung abzuschließen.
Hinweis: Das chinesische „Passwort“ und die „Datenbank“ müssen vom Benutzer selbst festgelegt werden.
Befehl: Datenbanken anzeigen (Hinweis: am Ende steht ein s)
mysql> show databases3.3 Datenbank löschen
Befehl: Datenbank 81a3e445eb8c572eb15846caefaaf0ed verwenden
Zum Beispiel: Wenn die xhkdb-Datenbank vorhanden ist, versuchen Sie, darauf zuzugreifen: mysql> verwenden Sie xhkdb;
Bildschirmaufforderung: Datenbank geändert Die
use-Anweisung kann MySQL anweisen, die Datenbank db_name als Standarddatenbank (aktuell) für nachfolgende Anweisungen zu verwenden. Diese Datenbank bleibt die Standarddatenbank bis zum Ende des Segments oder bis eine andere USE-Anweisung ausgegeben wird:
mysql> USE db1; mysql> SELECT COUNT(*) FROM mytable; # selects from db1.mytable mysql> USE db2; mysql> SELECT COUNT(*) FROM mytable; # selects from db2.mytableDie Verwendung einer USE-Anweisung zum Markieren einer bestimmten aktuellen Datenbank hindert Sie nicht daran, auf andere Tabellen in zuzugreifen die Datenbank. Das folgende Beispiel kann auf die Autorentabelle aus der DB1-Datenbank und die Bearbeitungstabelle aus der DB2-Datenbank zugreifen:
mysql> USE db1; mysql> SELECT author_name,editor_name FROM author,db2.editor -> WHERE author.editor_id = db2.editor.editor_id;Um die Datenbank zu verlassen oder eine Verbindung zu anderen Datenbanken herzustellen, verwenden Sie einfach „Anderer Datenbankname“. 3.5 Aktuell ausgewählte Datenbank
Befehl: mysql> Zahlen, Ergebnisse mathematischer Ausdrücke usw. Wie nutzt man die Sonderfunktionen des SELECT-Befehls in MySQL?
(1) Zeigt die MYSQL-Version an
mysql> select version(); +-----------------------+ | version() | +-----------------------+ | 6.0.4-alpha-community | +-----------------------+ 1 row in set (0.02 sec)
(4). Anzeigezeichenfolge
mysql> select now(); +---------------------+ | now() | +---------------------+ | 2009-09-15 22:35:32 | +---------------------+ 1 row in set (0.04 sec)
(5). Bei Verwendung des Taschenrechners
SELECT DAYOFMONTH(CURRENT_DATE); +--------------------------+ | DAYOFMONTH(CURRENT_DATE) | +--------------------------+ | 15 | +--------------------------+ 1 row in set (0.01 sec) SELECT MONTH(CURRENT_DATE); +---------------------+ | MONTH(CURRENT_DATE) | +---------------------+ | 9 | +---------------------+ 1 row in set (0.00 sec) SELECT YEAR(CURRENT_DATE); +--------------------+ | YEAR(CURRENT_DATE) | +--------------------+ | 2009 | +--------------------+ 1 row in set (0.00 sec)
(6).
mysql> SELECT "welecome to my blog!"; +----------------------+ | welecome to my blog! | +----------------------+ | welecome to my blog! | +----------------------+ 1 row in set (0.00 sec)Hinweis: Die Funktion CONCAT() wird hier zum Verketten von Zeichenfolgen verwendet. Darüber hinaus haben wir auch das zuvor gelernte AS verwendet, um der Ergebnisspalte „CONCAT(f_name, „“, l_name)“ ein Pseudonym zu geben 4. Tabellenoperationen
select ((4 * 4) / 10 ) + 25; +----------------------+ | ((4 * 4) / 10 ) + 25 | +----------------------+ | 26.60 | +----------------------+ 1 row in set (0.00 sec)4.1 Tabelle erstellen
Befehl: Tabelle erstellen 2a59fb221d0bc3b07e1e43cec3d4767d ( 9584f16febde46618c77e90dae28917c 94c58c2c10b65d8037fbb942316b3c4b [,..875d239be828b55d01b7fc73eabbecf6 e5c0d4be8e2fbfc7b53b811c65e8ac15]);
Erstellen Sie beispielsweise eine Datei mit dem Namen MyClass Tableselect CONCAT(f_name, " ", l_name) AS Name from employee_data where title = 'Marketing Executive'; +---------------+ | Name | +---------------+ | Monica Sehgal | | Hal Simlai | | Joseph Irvine | +---------------+ 3 rows in set (0.00 sec)4.2 Tabellenstruktur abrufen
Befehl: Tabellenname absteigen oder Spalten aus Tabellenname anzeigen
mysql> desc MyClass; mysql> show columns from MyClass;
使用MySQL数据库desc 表名时,我们看到Key那一栏,可能会有4种值,即' ','PRI','UNI','MUL'。
(1).如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列;
(2).如果Key是PRI, 那么该列是主键的组成部分;
(3).如果Key是UNI, 那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL);
(4).如果Key是MUL, 那么该列的值可以重复, 该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL。
如果对于一个列的定义,同时满足上述4种情况的多种,比如一个列既是PRI,又是UNI,那么"desc 表名"的时候,显示的Key值按照优先级来显,PRI->UNI->MUL。那么此时,显示PRI。
一个唯一性索引列可以显示为PRI,并且该列不能含有空值,同时该表没有主键。
一个唯一性索引列可以显示为MUL, 如果多列构成了一个唯一性复合索引,因为虽然索引的多列组合是唯一的,比如ID+NAME是唯一的,但是没一个单独的列依然可以有重复的值,只要ID+NAME是唯一的即可。
4.3删除表
命令:drop table a26d98d33123a70024fa8ba5642906c6
例如:删除表名为 MyClass 的表
mysql> drop table MyClass;
DROP TABLE用于取消一个或多个表。您必须有每个表的DROP权限。所有的表数据和表定义会被取消,所以使用本语句要小心!
注意:对于一个带分区的表,DROP TABLE会永久性地取消表定义,取消各分区,并取消储存在这些分区中的所有数据。DROP TABLE还会取消与被取消
的表有关联的分区定义(.par)文件。
对与不存在的表,使用IF EXISTS用于防止错误发生。当使用IF EXISTS时,对于每个不存在的表,会生成一个NOTE。
RESTRICT和CASCADE可以使分区更容易。目前,RESTRICT和CASCADE不起作用。
4.4向表插入数据
命令:insert into a26d98d33123a70024fa8ba5642906c6 [( d4e7ec1944da0629f9db5d84216a428c[,..2c85b2db0c99e1ea238a1572644c7331 ])] values ( 值1 )[, ( 值n )]
例如:往表 MyClass中插入二条记录, 这二条记录表示:编号为1的名为Tom的成绩为96.45, 编号为2 的名为Joan 的成绩为82.99, 编号为3 的名为
Wang 的成绩为96.5。
mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
注意:insert into每次只能向表中插入一条记录。
4.5查询表
(1)、查询所有行
命令: select f7b669960012ec3b697d0ecedc519e2d from 4d76b20d91d2b1cadcd47c2c81e2bca2 where b3edc94e70b2c7ee0c3cfeb91d0d0010
例如:查看表 MyClass 中所有数据
mysql> select * from MyClass;
(2)、查询前几行数据
例如:查看表 MyClass 中前2行数据
mysql> select * from MyClass order by id limit 0,2;
select一般配合where使用,以查询更精确更复杂的数据。
4.6删除表
命令:delete from 表名 where 表达式
例如:删除表 MyClass中编号为1 的记录
mysql> delete from MyClass where id=1;
4.7修改表中的数据
语法:update 表名 set 字段=新值,… where 条件
mysql> update MyClass set name='Mary' where id=1;
例子1:单表的MySQL UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]
例子2:多表的UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]
UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句,则更新所有的行。如果指定了ORDER BY子句,则按照被指定的顺序对行进行更新。LIMIT子句用于给定一个限值,限制可以被更新的行的数目。
4.8增加表字段
命令:alter table 表名 add字段 类型 其他;
例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0
mysql> alter table MyClass add passtest int(4) default '0'[/code]
加索引:mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
例子: mysql> alter table employee add index emp_name (name);
加主关键字的索引:mysql> alter table 表名 add primary key (字段名);
例子: mysql> alter table employee add primary key(id);
加唯一限制条件的索引:mysql> alter table 表名 add unique 索引名 (字段名);
例子: mysql> alter table employee add unique emp_name2(cardnumber);
删除某个索引:mysql> alter table 表名 drop index 索引名;
例子: mysql>alter table employee drop index emp_name;
增加字段:mysql> ALTER TABLE table_name ADD field_name field_type;
修改原字段名称及类型:mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;
修改字段类型:mysql>ALTER TABLE table_name MODIFY colum_name field_type new_type
删除字段:MySQL ALTER TABLE table_name DROP field_name;
4.9修改表名
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改为YouClass
mysql> rename table MyClass to YouClass;
当你执行 RENAME 时,你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限,以及对新表的 CREATE 和 INSERT 权限。
如果在多表更名中,MySQL 遭遇到任何错误,它将对所有被更名的表进行倒退更名,将每件事物退回到最初状态。
RENAME TABLE 在 MySQL 3.23.23 中被加入。
五、备份数据
命令在DOS的[url=file://\\mysql\\bin]\\mysql\\bin[/url]目录下执行
(1).导出整个数据库
导出文件默认是存在mysql\bin目录下
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u user_name -p123456 database_name > outfile_name.sql
(2).导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql
(3).导出一个数据库结构
mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
(4).带语言参数导出
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql
例如,将aaa库备份到文件back_aaa中:
[root@test1 root]# cd /home/data/mysql [root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa
六、一个完整的数据库创建实例
drop database if exists school; //如果存在SCHOOL则删除 create database school; //建立库SCHOOL use school; //打开库SCHOOL create table teacher //建立表TEACHER ( id int(3) auto_increment not null primary key, name char(10) not null, address varchar(50) default ''深圳'', year date ); //建表结束 //以下为插入字段 insert into teacher values('''',''glchengang'',''深圳一中'',''1976-10-10''); insert into teacher values('''',''jack'',''深圳一中'',''1975-12-23'');
注:在建表中
(1)、将ID设为长度为3的数字字段:int(3);并让它每个记录自动加一:auto_increment;并不能为空:not null;而且让他成为主字段primary key。
(2)、将NAME设为长度为10的字符字段
(3)、将ADDRESS设为长度50的字符字段,而且缺省值为深圳。
如果你在mysql提示符键入上面的命令也可以,但不方便调试。
(1)、你可以将以上命令原样写入一个文本文件中,假设为school.sql,然后复制到c:\\下,并在DOS状态进入目录[url=file://\\mysql\\bin]\
\mysql\\bin[/url],然后键入以下命令:mysql -uroot -p密码 541df8edea06165a8e9c40987b9b8ba8 source c:\\school.sql; 也可以将school.sql文件导入数据库中。
以上就是完整版的Mysql命令大全,希望对大家熟练使用Mysql命令有所帮助。