Maison > base de données > tutoriel mysql > le corps du texte

Collection d'instructions MySQL : création, autorisation, requête, modification

黄舟
Libérer: 2017-02-21 10:20:31
original
1840 Les gens l'ont consulté



1. Création, autorisations, suppression d'utilisateurs

1.

Connecter : mysql -h adresse de l'hôte -u nom d'utilisateur -p mot de passe de l'utilisateur (Remarque : u et root n'ont pas besoin d'espaces, il en va de même pour les autres)

Déconnecter : quitter ( return Car)

Ouvrez cmd, entrez

mysql -h 127.0.0.1 -u root -p et entrez le mot de passe. Vous pouvez vous connecter à la base de données MySql locale.

Collection d'instructions MySQL : création, autorisation, requête, modification

2. Créer un utilisateur :

Commande : CRÉER UN UTILISATEUR 'nom d'utilisateur'@'hôte' IDENTIFIÉ PAR 'mot de passe';

Instructions :

username - le nom d'utilisateur que vous allez créer,

host - spécifiez l'hôte sur lequel l'utilisateur peut se connecter. S'il s'agit d'un utilisateur local, localhost peut être utilisé. Si vous le souhaitez, l'utilisateur peut se connecter à partir de n'importe quel hôte distant et peut utiliser le caractère générique %.

mot de passe - le mot de passe de connexion de l'utilisateur peut être vide. S'il est vide, l'utilisateur peut se connecter. au serveur sans mot de passe.

Exemple :

CREATE USER 'lin'@'localhost' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456'; 
CREATE USER 'pig'@'%' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'%' IDENTIFIED BY ''; 
CREATE USER 'pig'@'%';
Copier après la connexion

Lors de la connexion, quittez d'abord celui en cours, puis saisissez ce qui suit

mysql -h 127.0.0.1 -u linlin -p 密码
mysql -h 127.0.0.1 -u pig -p 密码
Copier après la connexion

Collection d'instructions MySQL : création, autorisation, requête, modification

3. Autorisation :

Commande : GRANT privilèges ON databasename.tablename TO 'username'@'host'

Description :

privilèges - autorisations d'opération de l'utilisateur, telles que SELECT, INSERT, UPDATE, etc. (voir la fin de cet article pour une liste détaillée). Si vous souhaitez accorder toutes les autorisations, utilisez ALL.; - nom de la table Si vous souhaitez accorder à l'utilisateur les autorisations d'opération correspondantes sur toutes les bases de données et tables, vous pouvez utiliser * Représente, tel que *.*.

Exemple :

GRANT SELECT, INSERT ON school.* TO 'lin' @'%';
GRANT ALL ON *.* TO 'pig'@'%';
Copier après la connexion

Remarque. : Les utilisateurs autorisés avec la commande ci-dessus ne peuvent pas autoriser d'autres utilisateurs. Si vous souhaitez que l'utilisateur puisse autoriser, utilisez la commande suivante :

GRANT privileges ON databasename.tablename TO 'username'@'host'WITH GRANT OPTION;
Copier après la connexion

4.

Commande : SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); if yes L'utilisateur actuellement connecté utilise SET PASSWORD = PASSWORD("newpassword");

Exemple : SET PASSWORD FOR 'lin'@'%' = PASSWORD("123456");

Collection d'instructions MySQL : création, autorisation, requête, modification

5. Révoquer les privilèges de l'utilisateur

Commande : REVOKE privilège ON databasename.tablename FROM 'username'@'host';

Instructions : privilège, databasename, tablename - identique à la partie autorisation.

例子: REVOKE SELECT ON *.* FROM 'pig'@'%';

注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限.

具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.

6、删除用户

命令: DROP USER 'username'@'host';

二、数据库与表显示、创建、删除

1、数据库显示、创建、删除

显示数据库:show databases;

创建库:create database 库名;

删除库:drop database 库名;

使用库(选中库):use 库名;

Collection d'instructions MySQL : création, autorisation, requête, modification

2、表显示、创建、删除

显示数据表:show tables; (要先用use 数据库名选定数据库)

Collection d'instructions MySQL : création, autorisation, requête, modification

显示表结构:describe 表名;或者desc 表名

Collection d'instructions MySQL : création, autorisation, requête, modification

创建表:create table 表名 (字段设定列表);

CR EATE TABLE
USER
(
name VARCHAR(30) NOT NULL,
id INT DEFAULT '0' NOT NULL,
stu_id INT,
phone VARCHAR(20),
address VARCHAR(30) NOT NULL,
age INT(4) NOT NULL,
PRIMARY KEY (name),
CONSTRAINT stu_id UNIQUE (stu_id)
)
ENGINE=InnoDB D EFAULT CHARSET=utf8;
Copier après la connexion

删除表:drop table 表名;

句法:DROP DATABASE [IF EXISTS] db_name

功能:DROP DATABASE删除数据库中的所有表和数据库。要小心地使用这个命令!

DROP DATABASE返回从数据库目录被删除的文件的数目。通常,这3倍于表的数量,因为每张表对应于一个“.MYD”文件、一个“.MYI”文件和一个“.frm”文件。

在MySQL 3.22或以后版本中,你可以使用关键词IF EXISTS阻止一个错误的发生,如果数据库不存在。

三、表复制及备份还原

假设现在有表books:

1.复制表结构

1.1 含有主键等信息的完整表结构

CREATE table 新表名 LIKE book;

1.2 只有表结构,没有主键等信息

créer un nouveau nom de table, sélectionnez * dans les livres ;

ou

créez un nouveau nom de table comme (sélectionnez * dans le livre);

ou

créer une nouvelle table, sélectionnez * dans les livres où1=2 ;

2 Versez les données de l'ancienne table dans la nouvelle table

INSÉRER DANS la nouvelle table. SELECT * FROM old table;

Remarque : la nouvelle table doit déjà exister

3 Entrez l'instruction DDL pour créer la table

show create. table nom de la table ;

4. Effacer les données de la table

tronquer le nom de la table ;

5. 🎜> Par exemple, sauvegardez la base de données de la bibliothèque

Allez dans le répertoire bin Mysql

E:mysql-5.6.23-win32bin

Utilisez "mysqldump- u nom d'utilisateur-p nom de la base de données> nom de sauvegarde"Exporter la base de données vers un fichier

C:Program FilesMySQLMySQL Server 5.5bin>mysqldump -u root -p test >test.sql

Entrez le mot de passe : * **

C'est tout.

Collection d'instructions MySQL : création, autorisation, requête, modificationRépertoire E:mysql-5.6.23-win32bin

Collection d'instructions MySQL : création, autorisation, requête, modification

6. Restaurer la base de données

Restaurez la base de données de test à titre d'exemple

Créez d'abord la base de données test1

puis accédez à mysql>

entrez le chemin source

C'est tout.

Faites attention au chemin où se trouve test.sql !

Collection d'instructions MySQL : création, autorisation, requête, modification4. Opérations sur les données dans les tables de base de données

1. Effacer les données dans la table MySQL

supprimer du nom de la table;

truncate table nom de la table;

L'instruction delete sans paramètre Where peut supprimer tout le contenu de la table mysql. L'utilisation de truncate table peut également effacer tout le contenu. dans le contenu de la table MySQL.

效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。

delete的效果有点像将mysql表中所有记录一条一条删除到删完,

而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。

2、删除表中的某些数据

delete from命令格式:delete from 表名 where 表达式

例如,删除表 MyClass中编号为1 的记录:

代码如下:

mysql> delete from MyClass where id=1;
Copier après la connexion

五、修改表的列与表名

1、给列更名

>alter table 表名称 change 字段名称 字段名称

例如:

alter table pet change weight wei;

2、给表更名

>alter table 表名称 rename 表名称

例如:

alter table tbl_name rename new_tbl

3、修改某个表的字段类型及指定为空或非空

>alter table 表名称 change 字段名称字段名称 字段类型 [是否允许非空];

>alter table 表名称 modify 字段名称字段类型 [是否允许非空];

4、修改某个表的字段名称及指定为空或非空

>alter table 表名称 change 字段原名称字段新名称 字段类型 [是否允许非空];

例如:

修改表expert_info中的字段birth,允许其为空

代码如下:

>alter table expert_info change birth birth varchar(20) null;
Copier après la connexion

六、修改表中的数据

1.增加一个字段(一列)

alter table table_name add column column_name type default value; type指该字段的类型,value指该字段的默认值

例如:

代码如下:

alter table mybook add column publish_house varchar(10) default ”;
Copier après la connexion

2.更改一个字段名字(也可以改变类型和默认值)

alter table table_name change sorce_col_name dest_col_name type defaultvalue; source_col_name指原来的字段名称,dest_col_name

指改后的字段名称

例如:

代码如下:

alter table Board_Info change IsMobile IsTelphone int(3) unsigned default1;
Copier après la connexion

3.改变一个字段的默认值

alter table table_name alter column_name set default value;

例如:

代码如下:

alter table book alter flag set default '0′;
Copier après la connexion

4.改变一个字段的数据类型

alter table table_name change column column_name column_name type;

例如:

代码如下:

alter table userinfo change column username username varchar(20)
Copier après la connexion

5.向一个表中增加一个列做为主键

alter table table_name add column column_name type auto_increment PRIMARYKEY;

例如:

代码如下:

alter table book add column id int(10) auto_increment PRIMARY KEY;
Copier après la connexion

6.数据库某表的备份,在命令行中输入:

mysqldump -u root -p database_name table_name > bak_file_name

例如:

代码如下:

mysqldump -u root -p f_info user_info > user_info.dat
Copier après la connexion

7.导出数据

select_statment into outfile”dest_file”;

例如:

代码如下:

select cooperatecode,createtime from publish limit 10 intooutfile”/home/mzc/temp/tempbad.txt”;
Copier après la connexion

8.导入数据

load data infile”file_name” into table table_name;

例如:

代码如下:

load data infile”/home/mzc/temp/tempbad.txt” into table pad;
Copier après la connexion

9.将两个表里的数据拼接后插入到另一个表里。下面的例子说明将t1表中的com2和t2表中的com1字段的值拼接后插入到tx表对应的字段里。

例如:

代码如下:

insert into tx select t1.com1,concat(t1.com2,t2.com1) from t1,t2;
Copier après la connexion

10.删除字段

alter table form1 drop column 列名;

七、查询表

mysql查询的五种子句

where(条件查询)、having(筛选)、group by(分组)、order by(排序)、limit(限制结果数)

1、查询数值型数据:

SELECT * FROM tb_name WHERE sum > 100;

查询谓词:>,=,<,<>,!=,!>,!<,=>,=<

2、查询字符串

SELECT * FROM tb_stu WHERE sname = 'Xiao Liu'

SELECT * FROM tb_stu WHERE sname like 'Liu%'

SELECT * FROM tb_stu WHERE sname like '%programmer'

SELECT * FROM tb_stu WHERE sname like '%PHP%'

3. Interroger les données de type date

SELECT * FROM tb_stu WHERE date = '2011 - 04-08'

Remarque : Différentes bases de données présentent des différences dans les données de date : :

(1)MySQL : SELECT * from tb_name WHERE anniversaire = '2011-04-08'

(2)SQL Server : SELECT * depuis tb_name WHERE anniversaire = '2011-04-08'

(3)Accès :SELECT * depuis tb_name WHERE anniversaire = #2011-04-08#

4. Interroger les données logiques

SELECT * FROM tb_name WHERE type = 'T'

SELECT * FROM tb_name WHERE type = 'F'

Opérateurs logiques : et ou non

5. Interroger les données non vides

SELECT * FROM tb_name WHERE adresse <>'' ordre par addtime desc

Remarque : <> équivaut à !=

en PHP 6. Utilisez des variables pour interroger des données numériques

SELECT * FROM tb_name WHERE id = '$_POST[text]'

Remarque : lorsque vous utilisez des variables pour interroger des données, les variables transmises dans SQL n'ont pas besoin d'être placées entre guillemets, car lorsque les chaînes en PHP sont connectées à des données numériques, le Le programme convertira automatiquement les données numériques en chaîne, puis les connectera à la chaîne à connecter

7 Utilisez des variables pour interroger les données de chaîne

SELECT * FROM. tb_name WHERE name LIKE '%$_POST[name]%'

La méthode de correspondance exacte "%%" signifie qu'elle peut apparaître dans n'importe quelle position

Interroger les n premiers enregistrements.

SELECT * FROM tb_name LIMIT 0,$N;

l'instruction limite est utilisée conjointement avec d'autres instructions, telles que order by et d'autres instructions, et les instructions SQL seront utilisées d'une myriade de façons, rendant le programme très flexible

9 Après avoir interrogé n enregistrements

SELECT * FROM tb_stu ORDER BY id ASC LIMIT $n

10. La requête commence à partir de la position spécifiée n enregistrements de

SELECT * FROM tb_stu ORDER BY id ASC LIMIT $_POST[begin],$n

Note : l'identifiant des données commence à 0

11. Interrogez les n premiers enregistrements dans les résultats statistiques

.

SELECT * ,(yw sx wy) AS total FROM tb_score ORDER BY (yw sx wy) DESC LIMIT 0,$num

Interroger les données de la période spécifiée

SELECT Champ à trouver FROM nom de la table OÙ nom du champ ENTRE valeur initiale ET valeur finale

SELECT * FROM tb_stu OÙ âge ENTRE 0 ET 18

13. Par mois Interroger les données statistiques

SELECT * FROM tb_stu WHEREmonth(date) = '$_POST[date]' ORDER BY date ;

Remarque : les fonctions suivantes sont fournies en SQL langage, utilisation Ces fonctions peuvent facilement implémenter des requêtes par année, mois et jour

year(data) : Renvoie la valeur correspondant à l'année et à la minute AD dans l'expression de données

month(data ) : Renvoie la valeur correspondant au mois et à la minute dans l'expression de données

day(data) : Renvoie la valeur correspondant à la date dans l'expression de données

14. Interrogez le valeur supérieure à la condition spécifiée Record

SELECT * FROM tb_stu WHERE age>$_POST[age] ORDER BY age;

15. Les résultats de la requête n'affichent pas de doublon. enregistrements

SELECT DISTINCT nom du champ FROM nom de la table WHERE condition de requête

Remarque : DISTINCT dans l'instruction SQL doit être utilisé en conjonction avec la clause WHERE, sinon les informations de sortie ne changeront pas , et le champ ne peut pas être remplacé par *

16. Requête de conditions combinées de NOT et de prédicat

(1)NOT BERWEEN … AND … La requête de ligne peut être utilisée. pour les données entre la valeur de début et la valeur de fin Remplacer par Valeur de fin

(2)IS NOT NULL Requête pour les valeurs non nulles

(3)IS NULL Requête de valeurs nulles

(4)NOT IN Cette formule précise la recherche d'une expression selon que le mot-clé utilisé est inclus dans la liste ou exclu de la liste. L'expression de recherche peut être une constante ou une colonne. nom, et le nom de la colonne peut être un ensemble de constantes. Mais dans la plupart des cas, il s'agit d'une sous-requête

17 Afficher les enregistrements en double et le nombre d'enregistrements dans la table de données <.>

SELECT name,age,count(*),age FROM tb_stu WHERE age = '19' group by date

Interroger les données par ordre décroissant/ascendantSELECT nom du champ FROM tb_stu WHERE condition ORDER BY champ DESC ordre décroissant

SELECT nom du champ FROM tb_stu WHERE condition ORDER BY champ ASC ordre croissant

Remarque : Si vous ne spécifiez pas de méthode de tri lors du tri des champs, la valeur par défaut est l'ordre croissant ASC

19. Effectuer une requête multi-conditions sur les données

SELECT nom du champ FROM tb_stu WHERE condition ORDER BY champ 1. Champ ASC 2 DESC...

Remarque : le tri multicondition des informations de requête est Afin de limiter conjointement la sortie des enregistrements, en général, il existe certaines différences dans les effets de sortie car ils ne sont pas limités par une seule condition.

20. Trier les résultats statistiques

La fonction SUM (nom du champ [ALL]) ou SUM (nom du champ [DISTINCT]) peut réaliser la somme des champs. ALL, c'est la somme de tous les enregistrements de ce champ. Si c'est DISTINCT, c'est la somme de tous les champs de tous les enregistrements non dupliqués de ce champ

Par exemple : SELECT nom, SUM (prix ) AS sumprice FROM tb_price GROUP BY name

SELECT * FROM tb_name ORDER BY mount DESC,price ASC

21. Statistiques de groupe de données à colonne unique

SELECT id,name,SUM(price) AS title,date FROM tb_price GROUP BY pid ORDER BY title DESC

Remarque : Lorsque le groupe en triant l'instruction order by apparaît dans l'instruction SQL en même temps, le regroupement La déclaration doit être écrite devant la déclaration de tri, sinon une erreur se produira

22. Statistiques de regroupement de données multi-colonnes

Les statistiques de regroupement de données multi-colonnes sont similaires. aux statistiques de regroupement de données sur une seule colonne

SELECT *, SUM( Field 1*Field 2) AS (nouveau champ 1) FROM nom de la table GROUP BY champ ORDER BY nouveau champ 1 DESC

SELECT id ,name,SUM(price*num) AS sumprice FROM tb_price GROUP BY pid ORDER BY sumprice DESC

Remarque : l'instruction group by est généralement suivie d'une séquence qui n'est pas une fonction d'agrégation, c'est-à-dire qu'elle est pas une colonne à regrouper

23. Statistiques de regroupement multi-tables

SELECT a.name,AVG(a.price),b.name,AVG(b .price) FROM tb_demo058 AS a,tb_demo058_1 AS b WHERE a.id=b.id GROUP BY b.type;

Ce qui précède est le contenu de MySQL et la collection d'instructions. Pour plus de contenu connexe, veuillez faire attention. sur le site Web PHP chinois (m.sbmmt.com) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!