Maison  >  Article  >  base de données  >  Introduction aux instructions communes MySQL

Introduction aux instructions communes MySQL

墨辰丷
墨辰丷original
2018-05-11 10:55:461503parcourir

Cet article présente principalement des déclarations courantes telles que les bases de données, les tables de données, les types de données, les chaînes, ainsi que l'heure et la date. Les amis intéressés peuvent s'y référer.

Base de données
tableau de données
colonne
ligne
redondante
clé primaire
clé étrangère clé étrangère
clé composite
Index
Référentiel intégrité

Type de données MySQL

Trois catégories : valeur numérique, date/heure et chaîne (caractère)
Valeur numérique
TINYINT 1 octet ( 0, 255)
SMALLINT 2 octets (0, 65 535)
MEDIUMINT 3 octets
INT ou INTEGER 4 octets BIGINT 8 octets
FLOAT 4 octets DOUBLE 8 octets DECIMAL

Date heure
DATE valeur de date
TIME valeur de temps ou durée
YEAR valeur de l'année
DATETIME valeur de date et d'heure mixte
TIMESTAMP timestamp

chaîne de caractères
CHAR 0-255 octets, VARCHAR 0-65535 octets
BINARY, VARBINARY, BLOB, TEXT, ENUM et SET

Les transactions doivent remplir 4 conditions (ACID) :
Atomicité (atomicité), Cohérence (stabilité), Isolation (isolement), Durabilité (fiabilité)

1. Atomicité des transactions : un ensemble de transactions réussit ou est retiré.
2. Stabilité : s'il y a des données illégales (contraintes de clé étrangère, etc.), la transaction sera retirée.
3. Isolement : les transactions s'exécutent de manière indépendante. Si le résultat d'une transaction affecte d'autres transactions, les autres transactions seront retirées.
L'isolation à 100 % des transactions nécessite de sacrifier la vitesse.
4. Fiabilité : après une panne logicielle ou matérielle, le pilote de table de données InnoDB utilisera les fichiers journaux pour reconstruire et modifier.
La fiabilité et la vitesse élevée ne peuvent pas avoir les deux. L'option innodb_flush_log_at_trx_commit détermine quand enregistrer les transactions dans le journal.

La commande est la suivante :

mysql> -uroot -p123456 登陆
mysql> grant all on test.* to 'pengshiyu'@'localhost'
    -> identified by '123456'; 创建用户
mysql> quit  退出

mysql> show databases;  查看数据库
mysql> create database test;  创建数据库
mysql> create database test charset utf8;  指定字符集支持中文
mysql> show create database test;  查看数据库信息
mysql> drop database test;  删除数据库
mysql> use test;  进入数据库

mysql> create table student(
    -> id int auto_increment,
    -> name char(32) not null,
    -> age int not null,
    -> register_data date not null,
    -> primary key (id)
    -> );  创建表
mysql> show tables;  查看表
mysql> desc student;   查看表结构
mysql> describe student;   查看表结构
mysql> show columns from student;  查看表结构
mysql> insert into student(name, age, register_data)
    -> values('tom', 27, '2018-06-25'); 增加记录
mysql> select * from student;  查询数据
mysql> select * from student\G  按行输出
mysql> select * from student limit 3;  限制查询数量
mysql> select * from student limit 3 offset 5;  丢弃前5条数
mysql> select * from student where id > 3; 条件查询
mysql> select * from  student where register_data like "2018-06%";  模糊查询
mysql> update student set name = 'cxx' where id = 10;  修改
mysql> delete from student where id = 10;  删除
mysql> select * from student order by age; 排序默认ascend
mysql> select * from student order by age desc;  降序descend
mysql> select age,count(*) as num from student group by age; 分组
mysql> select name, sum(age) from student group by name with rollup; 汇总
mysql> select coalesce(name,'sum'), sum(age) from student
    -> group by name with rollup; 汇总取别名

mysql> alter table student add sex enum('M','F');  增加字段
mysql> alter table student drop sex;  删除字段
mysql> alter table student modify sex enum('M','F') not null; 修改字段类型
mysql> alter table student modify sex
    -> enum('M','F') not null default 'M';  设置默认值
mysql> alter table student change sex gender
    -> enum('M','F') not null default 'M'; 修改字段名称

mysql> create table study_record(
    -> id int not null primary key auto_increment,
    -> day int not null,
    -> stu_id int not null,
    -> constraint fk_student_key foreign key (stu_id) references student(id)
    -> );命名外键约束

创建表
mysql> create table A(a int not null);
mysql> create table B(b int not null);

插入数据
mysql> insert into A(a) values (1);
mysql> insert into A(a) values (2);
mysql> insert into A(a) values (3);
mysql> insert into A(a) values (4);

mysql> insert into B(b) values (3);
mysql> insert into B(b) values (4);
mysql> insert into B(b) values (5);
mysql> insert into B(b) values (6);
mysql> insert into B(b) values (7);

交集 内连接
mysql> select * from A inner join B on A.a = B.b;
mysql> select a.*, b.* from A inner join B on A.a = B.b;
差集
mysql> select * from A left join B on A.a =B.b; 左外连接
mysql> select * from A right join B on A.a =B.b; 右外连接
并集
mysql> select * from a left join b on a.a=b.b union
    ->  select * from a right join b on a.a = b.b; 全连接

mysql> begin; 开始事务
mysql> rollback; 回滚事务
mysql> commit;  提交事务
mysql> show index from student; 查看索引
mysql> create index name_index on student(name(10)); 创建索引
mysql> drop index name_index on student;删除索引

Recommandations associées :

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

30 conseils pour optimiser les instructions MySQL

Plusieurs instructions MySQL couramment utilisées dans le didacticiel PHP_PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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