MySQL Command Collection: MySQL Command Line Collection

One, connect to Mysql

Format: mysql -h host address-u user name-p user password

1. Connect to MYSQL on this machine.
First open the DOS window, then enter the directory mysql\bin, and then type the command mysql -u root -p. After pressing Enter, you will be prompted to enter the password. Note that there can be or no spaces before the user name, but there must be no spaces before the password, otherwise you will be asked to enter the password again.

If MYSQL has just been installed, the super user root does not have a password, so you can enter MYSQL directly by pressing Enter. The prompt of MYSQL is: mysql>

2. Connect to MYSQL on the remote host. Assume that the IP of the remote host is 110.110.110.110, the user name is root, and the password is abcd123. Then type the following command:
mysql -h110.110.110.110 -u root -p 123;
(Note: there is no need to add a space between u and root, the other is the same)

3. Exit the MYSQL command: exit (回车)

Two, change the password

format:mysqladmin -u用户名 -p旧密码 password 新密码

1. Add a password ab12 to root.
First enter the directory mysql\bin under DOS, and then type the following command.
mysqladmin -u root -password ab12
Note: Because root has no password at the beginning, the -p old password can be omitted.

2. Change the root password to djg345.
mysqladmin -u root -p ab12 password djg345

Three, add new users

Note: Different from the above, the following are commands in the MYSQL environment, so they are followed by a semicolon as the command terminator

format:grant select on 数据库.* to 用户名@登录主机 identified by “密码”

1. Add a user test1 with a password of abc, so that he can log in on any host and have the permissions to query, insert, modify, and delete all databases. First connect to MYSQL as the root user, and then type the following command:
·grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “abc”;

But adding users is very dangerous. If you want someone to know the password of test1, then he can log in to your mysql database on any computer on the Internet and do whatever you want with your data. See 2 for the solution .

2. Add a user test2 with a password of abc, so that he can only log in on localhost, and can query, insert, modify, and delete the database mydb (localhost refers to the local host, that is, the host where the MYSQL database is located), In this way, even if the user knows the password of test2, he cannot directly access the database from the internet, and can only access it through the web page on the MYSQL host.
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”;

If you don't want test2 to have a password, you can delete the password by typing another command.
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”;

Four, database operation

4.1 Create a database
Note: Connect to Mysql server before creating a database

Command: create database <database name>

Example 1: Create a database named xhkdb
mysql> create database xhkdb;

Example 2: Create a database and assign users

① CREATE DATABASE database name;

②GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON database name. * TO database name@localhost IDENTIFIED BY'password';

③SET PASSWORD FOR'database name'@'localhost' = OLD_PASSWORD('password');

Execute 3 commands in turn to complete the database creation. Note: The Chinese "password" and "database" need to be set by users themselves.
4.2 Show databases
Command: show databases (note: there is an s at the end)
mysql> show databases;

Note: In order to no longer display garbled characters, the database default encoding must be modified. The following takes the GBK encoding page as an example:

1. Modify the configuration file of MYSQL: modify default-character-set=gbk in my.ini 2. Modify the
code when it is running:
①Java code: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk
②PHP code: header("Content-Type:text/html;charset=gb2312");
③C language code: int mysql_set_character_set( MYSQL * mysql, char * csname);
this function is used to set the default character set for the current connection. The string csname specifies a valid character set name. Link collation becomes the default collation of the character set. This function works similarly to the SET NAMES statement, but it can also set the value of mysql-> charset, which affects the character set set by mysql_real_escape_string().
4.3 Delete database
Command: drop database <database name>
For example: delete the database named xhkdb
mysql> drop database xhkdb;

Example 1: Delete a database that has been determined to exist
mysql> drop database drop_database;
Query OK, 0 rows affected (0.00 sec)

Example 2: Delete a database
mysql> drop database drop_database;
ERROR 1008 (HY000): Can't drop database 'drop_database'; database doesn't exist
that does not exist.//An error occurred and the'drop_database' database could not be deleted. The database does not exist.
mysql> drop database if exists drop_database;
Query OK, 0 rows affected, 1 warning (0.00 sec)
//A warning is generated stating that the database does not exist.
mysql> create database drop_database;
Query OK, 1 row affected (0.00 sec)
mysql> drop database if exists drop_database;
//if exists to determine whether the database exists, and if it does not exist, no error will be generated.
Query OK, 0 rows affected (0.00 sec)
4.4 Connect to the database
Command: use <database name>

For example: if the cfbse database exists, try to access it:
mysql> use cfbase;
Screen prompt: Database changed

The use statement can tell MySQL to use the db_name database as the default (current) database for subsequent statements. This database remains the default database until the end of the segment, or until a different USE statement is issued:
mysql> USE db1; mysql> SELECT COUNT(*) FROM mytable;
# selects from db1.mytable
mysql> USE db2; mysql> SELECT COUNT(*) FROM mytable; # selects from db2.mytable

Using the USE statement to mark a specific current database will not prevent you from accessing tables in other databases. The following example can access the author table from the db1 database and the edit table from the db2 database:
mysql> USE db1;
mysql> SELECT author_name,editor_name FROM author,db2.editor
-> WHERE author.editor_id = db2.editor.editor_id;

The USE statement was set up to be compatible with Sybase.

Some netizens asked how to log out after connecting. In fact, you don't need to exit. After using the database, you can use show databases to query all databases. If you want to jump to other databases, just
use other database names
.
4.5 The currently selected database
Command: mysql> select database();

The SELECT command in MySQL is similar to print or write in other programming languages. You can use it to display the result of a string, number, mathematical expression, and so on. How to use the special functions of the SELECT command in MySQL?

1. Display the version of MYSQL

mysql> select version(); 
+-----------------------+ 
| version()             | 
+-----------------------+ 
| 6.0.4-alpha-community | 
+-----------------------+ 
1 row in set (0.02 sec)
  1. Show current time
mysql> select now(); 
+---------------------+ 
| now()               | 
+---------------------+ 
| 2009-09-15 22:35:32 | 
+---------------------+ 
1 row in set (0.04 sec) 
  1. Display year, month and day
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) 
  1. Display string
mysql> SELECT "welecome to my blog!"; 
+----------------------+ 
| welecome to my blog! | 
+----------------------+ 
| welecome to my blog! | 
+----------------------+ 
1 row in set (0.00 sec) 
  1. As a calculator
select ((4 * 4) / 10 ) + 25; 
+----------------------+ 
| ((4 * 4) / 10 ) + 25 | 
+----------------------+ 
|                26.60 | 
+----------------------+ 
1 row in set (0.00 sec) 
  1. Concatenated string
select 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) 

Note: The CONCAT() function is used here to concatenate strings. In addition, we also used the AS we learned before to give the result column'CONCAT(f_name, "", l_name)' a pseudonym.

Five, table operation

5.1 Create a data table
Command: create table <table name> (<field name 1> <type 1> [,…<field name n> <type n>]);

For example, create a table named MyClass,

Field name numeric type data width is empty Whether the primary key automatically increases the default value
id int 4 No primary key auto_increment
name char 20 No
sex int 4 No 0
degree double 16 Yes

mysql> create table MyClass(
id int(4) not null primary key auto_increment,
name char(20) not null,
sex int(4) not null default '0',
degree double(16,2));

5.3 Delete data table
Command: drop table <table name>

For example: delete the table named MyClass
mysql> drop table MyClass;

DROP TABLE is used to cancel one or more tables. You must have DROP permission for each table. All table data and table definitions will be cancelled, so be careful when using this statement!

Note: For a table with partitions, DROP TABLE will permanently cancel the table definition, cancel each partition, and cancel all data stored in these partitions. DROP TABLE also cancels the partition definition (.par) file associated with the table being canceled.

For tables that do not exist, use IF EXISTS to prevent errors from occurring. When using IF EXISTS, a NOTE is generated for each table that does not exist.

RESTRICT and CASCADE can make partitioning easier. Currently, RESTRICT and CASCADE do not work.
5.4 Table insert data
command:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]

For example: insert two records into the table MyClass, these two records indicate: the score of Tom named Tom with number 1 is 96.45, the score of Joan with number 2 is 82.99, and the score of Wang with number 3 is 96.5 .
mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

Note: Insert into can only insert one record into the table at a time.
5.5 Query the data in the table
1), query all rows
Command: select <字段1,字段2,...> from < 表名 > where < 表达式 >
For example: view all the data in the table MyClass
mysql> select * from MyClass;

2), query the first few rows of data
For example: view the first 2 rows of data in the table MyClass
mysql> select * from MyClass order by id limit 0,2;

Select is generally used in conjunction with where to query more precise and complex data.
5.6 Delete data in the table

command:delete from 表名 where 表达式

For example: delete the record numbered 1 in the table MyClass
mysql> delete from MyClass where id=1;

Below is a comparison of tables before and after deleting data.

FirstName	LastName	Age
Peter	Griffin	35
Glenn	Quagmire	33

Take the PHP code as an example to delete all records with LastName='Griffin' in the "Persons" table:

<?php 
   $con = mysql_connect("localhost","peter","abc123"); 
   if (!$con) 
   {
      die('Could not connect: ' . mysql_error()); 
   } 
   mysql_select_db("my_db", $con); 
   mysql_query("DELETE FROM Persons WHERE LastName='Griffin'"); mysql_close($con); 
?>

After this deletion, the table looks like this:

FirstName	LastName	Age
Glenn	Quagmire	33

5.7 Modify the data in the table
Syntax: update table name set field = new value,... where conditions
mysql> update MyClass set name='Mary' where id=1;

Example 1: MySQL UPDATE statement for a single table:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

Example 2: UPDATE statement for multiple tables:

UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

The UPDATE syntax can update the columns in the original table row with new values. The SET clause indicates which columns to modify and which values ​​to give. The WHERE clause specifies which rows should be updated. If there is no WHERE clause, all rows are updated. If the ORDER BY clause is specified, the rows are updated in the order specified. The LIMIT clause is used to give a limit and limit the number of rows that can be updated.

5.8 Add Field
Command: alter table table name add field type other;
for example: add a field passtest in the table MyClass, the type is int(4), the default value is 0
mysql> alter table MyClass add passtest int(4) default '0'

Add index
mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
example:mysql> alter table employee add index emp_name (name);

Add the index of the primary key
mysql> alter table 表名 add primary key (字段名);
example:mysql> alter table employee add primary key(id);

Index with unique restriction conditions
mysql> alter table 表名 add unique 索引名 (字段名);
Example:mysql> alter table employee add unique emp_name2(cardnumber);

Delete an index
mysql> alter table 表名 drop index 索引名;
example:mysql>alter table employee drop index emp_name;

Add fields:
mysql> ALTER TABLE table_name ADD field_name field_type;

Modify the original field name and type:
mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;
Delete field:
MySQL ALTER TABLE table_name DROP field_name;
5.9 Modify table name
Command:rename table 原表名 to 新表名;

For example: Change the name of the table MyClass to YouClass
mysql> rename table MyClass to YouClass;

When you execute RENAME, you cannot have any locked tables or active transactions. You must also have ALTER and DROP permissions on the original table, and CREATE and INSERT permissions on the new table.

If MySQL encounters any errors in the multi-table renaming, it will rename all the renamed tables backwards and return everything to the original state.

RENAME TABLE was added in MySQL 3.23.23.

Six, backup the database

The command is executed in the [url=file://\mysql\bin]\mysql\bin[/url] directory of DOS

1. Export the entire database The
export file is stored in the mysql\bin directory by default
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u user_name -p123456 database_name > outfile_name.sql

2. Export a table
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql

3. Export a database structure

mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
    -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table

4. Export with language parameters
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql

For example, to back up the aaa library to the file back_aaa:
[root@test1 root]# cd /home/data/mysql
[root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa

Seven, examples

7.1 An Example of Building Database and Table 1

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(”,’allen’,'大连一中’,'1976-10-10′);
insert into teacher values(”,’jack’,'大连二中’,'1975-12-23′);

If you type the above command at the mysql prompt, it is fine, but it is not convenient for debugging.
1. You can write the above command as it is to a text file, assuming it is school.sql, then copy it to c:\, and enter the directory [url=file://\mysql\bin]\mysql\ in the DOS state bin[/url], and then type the following command:
mysql -uroot -p密码 < c:\\school.sql
If successful, leave a line without any display; if there is an error, there will be a prompt. (The above command has been debugged, you only need to remove the comment of // to use).

2. Or use after entering the command line. mysql> source c:\\school.sql;
You can also import the school.sql file into the database.

7.2 An Example of Building Database and Table 2

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'');

@Note: Under construction

1. Set the ID to a numeric field with a length of 3: int(3); and let it automatically add one to each record: auto_increment; it cannot be empty: not null; and let it be the primary key of the primary field.

2. Set NAME to a character field of length 10

3. Set ADDRESS as a character field of length 50, and the default value is Shenzhen.

4. Set YEAR as the date field.

Guess you like

Origin blog.csdn.net/Uridis/article/details/88079724