Heim > Datenbank > MySQL-Tutorial > Hauptteil

Einführung in allgemeine MySQL-Anweisungen

墨辰丷
Freigeben: 2018-05-11 10:55:46
Original
1481 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich allgemeine Aussagen wie Datenbanken, Datentabellen, Datentypen, Zeichenfolgen sowie Uhrzeit und Datum vorgestellt.

Datenbank
Datentabelle Tabelle
Spalte
Zeile
redundant
Primärschlüssel
Fremdschlüssel Fremdschlüssel
zusammengesetzter Schlüssel
Index
Referenz Integrität

MySQL-Datentyp

Drei Kategorien: numerischer Wert, Datum/Uhrzeit und Zeichenfolge (Zeichen)
Numerischer Wert
TINYINT 1 Byte ( 0, 255)
SMALLINT 2 Bytes (0, 65 535)
MEDIUMINT 3 Bytes
INT oder INTEGER 4 Bytes BIGINT 8 Bytes
FLOAT 4 Bytes DOUBLE 8 Bytes DECIMAL

Datumszeit
DATE Datumswert
TIME Zeitwert oder Dauer
YEAR Jahrwert
DATETIME gemischter Datums- und Zeitwert
TIMESTAMP Zeitstempel

Zeichenkette
CHAR 0-255 Bytes, VARCHAR 0-65535 Bytes
BINARY, VARBINARY, BLOB, TEXT, ENUM und SET

Transaktionen müssen 4 Bedingungen (ACID) erfüllen:
Atomizität (Atomizität), Konsistenz (Stabilität), Isolation (Isolation), Haltbarkeit (Zuverlässigkeit)

1. Atomarität von Transaktionen: Eine Reihe von Transaktionen ist entweder erfolgreich oder wird zurückgezogen.
2. Stabilität: Bei illegalen Daten (Fremdschlüsseleinschränkungen usw.) wird die Transaktion zurückgezogen.
3. Isolation: Transaktionen laufen unabhängig ab. Wenn sich das Ergebnis einer Transaktion auf andere Transaktionen auswirkt, werden die anderen Transaktionen zurückgezogen.
Eine 100-prozentige Isolierung von Transaktionen erfordert Einbußen bei der Geschwindigkeit.
4. Zuverlässigkeit: Nach Software- oder Hardwareabstürzen verwendet der InnoDB-Datentabellentreiber Protokolldateien zur Rekonstruktion und Änderung.
Zuverlässigkeit und hohe Geschwindigkeit können nicht beides sein. Die Option innodb_flush_log_at_trx_commit bestimmt, wann Transaktionen im Protokoll gespeichert werden.

Der Befehl lautet wie folgt:

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;删除索引
Nach dem Login kopieren

Verwandte Empfehlungen:

MySQL-Anweisungssammlung: erstellen, autorisieren , abfragen, ändern

30 Tipps zur Optimierung von MySQL-Anweisungen

Mehrere MySQL-Anweisungen, die häufig in PHP_PHP-Tutorials verwendet werden

Das obige ist der detaillierte Inhalt vonEinführung in allgemeine MySQL-Anweisungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!