Datenbankverwaltung
Buddha sagte: „Zuerst gibt es die Datenbank, dann gibt es Tabellen, dann gibt es Daten…“
Datenbank erstellen
1 2 3 4 5 6 | CREATE DATABASE [IF NOT EXISTS] db_name
[create_specification] ...
create_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
|
Nach dem Login kopieren
Zum Beispiel: Erstellen Sie eine Datenbank und geben Sie den Standardzeichensatz als UTF-8 an
1 2 | SHOW CHARACTER SET;
CREATE DATABASE mydb CHARACTER SET= 'utf8' ;
|
Nach dem Login kopieren
Informationen zur Datenbankerstellung anzeigen
1 2 3 4 5 6 7 | MariaDB [(none)]> SHOW CREATE DATABASE mydb;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| mydb | CREATE DATABASE `mydb` |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
|
Nach dem Login kopieren
Datenbank ändern
ALTER {DATABASE |. SCHEMA} [db_name]
alter_spezifikation ...
ALTER {DATABASE |. SCHEMA} db_name
UPGRADE DATA DIRECTORY NAME //Verwenden Sie diesen Befehl, um die Datenbankdatei beim Aktualisieren der Datenbank neu zu kodieren
alter_spezifikation:
[STANDARD] ZEICHENSATZ [=] Zeichensatzname
|. [STANDARD] COLLATE [=] collation_nam
Ändern Sie den Zeichensatz der Datenbank mydb auf utf-16:
1 2 | MariaDB [(none)]> ALTER DATABASE mydb CHARACTER SET = utf16;
Query OK, 1 row affected (0.00 sec)
|
Nach dem Login kopieren
Datenbank löschen
DROP {DATABASE |. SCHEMA} [IF EXISTS] db_name löscht die Datenbank. . . schnell! Denken Sie also darüber nach, bevor Sie ins Auto steigen.
1 2 | MariaDB [(none)]> DROP DATABASE IF EXISTS mydb;
Query OK, 0 rows affected (0.00 sec)
|
Nach dem Login kopieren
Standardzeichensatz für die Datenbank festlegen
Fügen Sie einfach diesen Befehl zu my.cnf unter [mysqld] hinzu:
1 | character_set_server = utf8
|
Nach dem Login kopieren
Tischverwaltung
Tabelle erstellen
1 2 | CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...) [table_options ]... [partition_options]
|
Nach dem Login kopieren
Die grundlegendere Option ist die Tabellendefinitionsoption wie folgt:
1 2 3 4 5 6 7 8 | column_definition:
data_type
[NOT NULL | NULL] [DEFAULT default_value | (expression)]
[AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
[INVISIBLE] [{WITH|WITHOUT} SYSTEM VERSIONING]
[COMMENT 'string' ]
[COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]
[reference_definition]
|
Nach dem Login kopieren
Zum Beispiel: Erstellen Sie eine Benutzertabelle mit 4 Feldern: ID, Benutzername, Passwort, Anmeldezeit
1 2 3 4 5 | MariaDB [mydb]> CREATE TABLE IF NOT EXISTS user(
-> id INT AUTO_INCREMENT PRIMARY KEY,
-> username VARCHAR(10) NOT NULL,
-> password VARCHAR(32) NOT NULL,
-> logintime TIMESTAMP NOT NULL);
|
Nach dem Login kopieren
Tabelle anzeigen
In MySQL können Sie DESCRIBE table_name verwenden; um die Definition der Tabelle anzuzeigen, kann DESCRIBE wie folgt abgekürzt werden:
1 2 3 4 5 6 7 8 9 10 | MariaDB [mydb]> DESC user;
+-----------+-------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+-------------------+-----------------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(10) | NO | | NULL | |
| password | varchar(32) | NO | | NULL | |
| logintime | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-----------+-------------+------+-----+-------------------+-----------------------------+
4 rows in set (0.03 sec)
|
Nach dem Login kopieren
Natürlich können wir auch SHOW CREATE TABLE Tabellenname verwenden, um die Befehle anzuzeigen, die zum Definieren der Tabelle verwendet werden
1 2 3 4 5 6 7 8 9 10 11 12 13 | MariaDB [mydb]> SHOW CREATE TABLE user;
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user | CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(10) NOT NULL,
`password` varchar(32) NOT NULL,
`logintime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf16 |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
|
Nach dem Login kopieren
Tabelle ändern
1.为user表添加一个新的字段registtime来记录用户的注册时间
1 | MariaDB [mydb]> ALTER TABLE user ADD COLUMN registtime TIMESTAMP NOT NULL AFTER logintime;
|
Nach dem Login kopieren
所以,添加字段的格式可以为如下:
1 2 | ALTER TABLE table_name ADD [COLUMN] col_name column_definition
[FIRST | AFTER col_name ]
|
Nach dem Login kopieren
其中,FIRST与AFTER是指定新添加的字段在什么位置,FIRST代表第一列,而AFTER指示在某一列之后
2.为user表修改一个字段,把刚才新加的registtime字段的数据类型修改为datatime类型
1 | MariaDB [mydb]> ALTER TABLE user MODIFY COLUMN registtime DATETIME;
|
Nach dem Login kopieren
命令格式如下:
1 2 | ALTER TABLE table_name MODIFY [COLUMN] col_name column_definition
[FIRST | AFTER col_name]
|
Nach dem Login kopieren
3.修改字段registtime为createtime
MariaDB [mydb]> ALTER TABLE user CHANGE registtime createtime DATETIME NOT NULL;
命令格式如下,需要重新定义下新的字段:
1 2 | ALTER TABLE table_name CHANGE [COLUMN] old_col_name new_col_name column_definition
[FIRST|AFTER col_name]
|
Nach dem Login kopieren
4.删除这个createtime字段,所有行的这个字段的数据也会被删除
1 | MariaDB [mydb]> ALTER TABLE user DROP COLUMN createtime;
|
Nach dem Login kopieren
5.修改表名user为users
1 | MariaDB [mydb]> ALTER TABLE user RENAME TO users;
|
Nach dem Login kopieren
6.修改数据表的字符集
1 | MariaDB [mydb]> ALTER TABLE users DEFAULT CHARACTER SET=utf8;
|
Nach dem Login kopieren
7.修改数据表的存储引擎,有关存储引擎这方面暂时了解的不深,所以这条命令....嗯,你懂得。
1 | MariaDB [mydb]> ALTER TABLE users ENGINE=MyISAM;
|
Nach dem Login kopieren
会导致数据重建的...所以,谨慎修改
8.修改数据表的排序字段
1 | MariaDB [mydb]> ALTER TABLE users ORDER BY logintime;
|
Nach dem Login kopieren
删除一个数据表
与删除数据库一样,谨慎按下回车键
1 | MariaDB [mydb]> DROP TABLE IF EXISTS users;
|
Nach dem Login kopieren
Das obige ist der detaillierte Inhalt vonZusammenfassung des Mariadb-Lernens (2): Datenbank- und Tabellenverwaltung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!