Maison > Article > base de données > Collection d'instructions MySQL : création, autorisation, requête, modification
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.
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'@'%';
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 密码
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'@'%';
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;
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");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 库名;
2、表显示、创建、删除
显示数据表:show tables; (要先用use 数据库名选定数据库)
显示表结构:describe 表名;或者desc 表名
创建表: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;
删除表: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.
Répertoire E:mysql-5.6.23-win32bin
6. Restaurer la base de donnéesRestaurez 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 sourceC'est tout. Faites attention au chemin où se trouve test.sql !4. Opérations sur les données dans les tables de base de données
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;
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;
1.增加一个字段(一列)
alter table table_name add column column_name type default value; type指该字段的类型,value指该字段的默认值
例如:
代码如下:
alter table mybook add column publish_house varchar(10) default ”;
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;
3.改变一个字段的默认值
alter table table_name alter column_name set default value;
例如:
代码如下:
alter table book alter flag set default '0′;
4.改变一个字段的数据类型
alter table table_name change column column_name column_name type;
例如:
代码如下:
alter table userinfo change column username username varchar(20)
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;
6.数据库某表的备份,在命令行中输入:
mysqldump -u root -p database_name table_name > bak_file_name
例如:
代码如下:
mysqldump -u root -p f_info user_info > user_info.dat
7.导出数据
select_statment into outfile”dest_file”;
例如:
代码如下:
select cooperatecode,createtime from publish limit 10 intooutfile”/home/mzc/temp/tempbad.txt”;
8.导入数据
load data infile”file_name” into table table_name;
例如:
代码如下:
load data infile”/home/mzc/temp/tempbad.txt” into table pad;
9.将两个表里的数据拼接后插入到另一个表里。下面的例子说明将t1表中的com2和t2表中的com1字段的值拼接后插入到tx表对应的字段里。
例如:
代码如下:
insert into tx select t1.com1,concat(t1.com2,t2.com1) from t1,t2;
10.删除字段
alter table form1 drop column 列名;
mysql查询的五种子句
where(条件查询)、having(筛选)、group by(分组)、order by(排序)、limit(限制结果数)
1、查询数值型数据:
SELECT * FROM tb_name WHERE sum > 100;
查询谓词:>,=,b51c1dff9f981b354aedd874329dcdbc,!=,!>,!a64e859162c6a580c74acfeb0b41c8ef,=cecd8cf8d4ab7f0ba44661817cae01f0'' ordre par addtime desc
Remarque : a8093152e673feb7aba1828c43532094 é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 f1ea7e7ecb502b4829371ccf4cd5e095Valeur 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 dateInterroger 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éesSELECT 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 (www.php.cn) !