Heim > System-Tutorial > LINUX > Zusammenfassung des Mariadb-Lernens (2): Datenbank- und Tabellenverwaltung

Zusammenfassung des Mariadb-Lernens (2): Datenbank- und Tabellenverwaltung

PHPz
Freigeben: 2024-07-17 08:58:29
Original
481 Leute haben es durchsucht
Datenbankverwaltung

Buddha sagte: „Zuerst gibt es die Datenbank, dann gibt es Tabellen, dann gibt es Daten…“

Zusammenfassung des Mariadb-Lernens (2): Datenbank- und Tabellenverwaltung

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'; //创建数据库mydb,并指定字符集为utf-8

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` /*!40100 DEFAULT CHARACTER SET utf8 */ |

+----------+---------------------------------------------------------------+

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!

Quelle:linuxprobe.com
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