Maison > Tutoriel système > Linux > Résumé d'apprentissage Mariadb (2) : gestion de bases de données et de tables

Résumé d'apprentissage Mariadb (2) : gestion de bases de données et de tables

PHPz
Libérer: 2024-07-17 08:58:29
original
544 Les gens l'ont consulté
Gestion de base de données

Bouddha a dit : "Il y a d'abord la base de données, puis il y a les tables, puis il y a les données..."

Résumé dapprentissage Mariadb (2) : gestion de bases de données et de tables

Créer une base de données
CREATE DATABASE [IF NOT EXISTS] db_name
    [create_specification] ...

create_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name
Copier après la connexion

Par exemple : créez une base de données et spécifiez le jeu de caractères par défaut comme UTF-8

SHOW CHARACTER SET;//查看支持的字符集
CREATE DATABASE mydb CHARACTER SET='utf8'; //创建数据库mydb,并指定字符集为utf-8
Copier après la connexion
Afficher les informations de création de base de données
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)
Copier après la connexion
Modifier la base de données

ALTER {BASE DE DONNÉES | SCHÉMA} [db_name]
alter_spécification ...
MODIFIER {BASE DE DONNÉES SCHÉMA} nom_base de données
UPGRADE DATA DIRECTORY NAME //Utilisez cette commande pour réencoder le fichier de base de données lors de la mise à niveau de la base de données

alter_spécification :
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_nam

Modifiez le jeu de caractères de la base de données mydb en utf-16 :

MariaDB [(none)]> ALTER DATABASE mydb CHARACTER SET = utf16;
Query OK, 1 row affected (0.00 sec)
Copier après la connexion
Supprimer la base de données

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name supprime la base de données. . . rapide! Alors réfléchissez-y avant de monter dans la voiture.

MariaDB [(none)]> DROP DATABASE IF EXISTS mydb;
Query OK, 0 rows affected (0.00 sec)
Copier après la connexion
Définir le jeu de caractères par défaut de la base de données

Ajoutez simplement cette commande à my.cnf, sous [mysqld] :

character_set_server = utf8
Copier après la connexion
Gestion des tables
Créer une table
CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...) [table_options    ]... [partition_options]
Copier après la connexion

La plus basique est l'option de définition de table, comme suit :

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]
Copier après la connexion

Par exemple : Créez une table Utilisateur avec 4 champs : ID, nom d'utilisateur, mot de passe, heure de connexion

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);
Copier après la connexion
Voir le tableau

Dans Mysql, vous pouvez utiliser DESCRIBE nom_table pour afficher la définition de la table DESCRIBE peut être abrégé en DESC, comme suit :

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)
Copier après la connexion

Bien sûr, nous pouvons également utiliser SHOW CREATE TABLE table_name pour afficher les commandes utilisées pour définir la table

;
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)
Copier après la connexion
Modifier le tableau

1.为user表添加一个新的字段registtime来记录用户的注册时间

MariaDB [mydb]> ALTER TABLE user ADD COLUMN registtime TIMESTAMP NOT NULL AFTER logintime;
Copier après la connexion

所以,添加字段的格式可以为如下:

ALTER TABLE table_name ADD [COLUMN] col_name column_definition
        [FIRST | AFTER col_name ]
Copier après la connexion

其中,FIRST与AFTER是指定新添加的字段在什么位置,FIRST代表第一列,而AFTER指示在某一列之后

2.为user表修改一个字段,把刚才新加的registtime字段的数据类型修改为datatime类型

MariaDB [mydb]> ALTER TABLE user MODIFY COLUMN registtime DATETIME;
Copier après la connexion

命令格式如下:

ALTER TABLE table_name MODIFY [COLUMN] col_name column_definition
        [FIRST | AFTER col_name]
Copier après la connexion

3.修改字段registtime为createtime
MariaDB [mydb]> ALTER TABLE user CHANGE registtime createtime DATETIME NOT NULL;
命令格式如下,需要重新定义下新的字段:

ALTER TABLE table_name CHANGE [COLUMN] old_col_name new_col_name column_definition
        [FIRST|AFTER col_name]
Copier après la connexion

4.删除这个createtime字段,所有行的这个字段的数据也会被删除

MariaDB [mydb]> ALTER TABLE user DROP COLUMN createtime;
Copier après la connexion

5.修改表名user为users

MariaDB [mydb]> ALTER TABLE user RENAME TO users;
Copier après la connexion

6.修改数据表的字符集

MariaDB [mydb]> ALTER TABLE users DEFAULT CHARACTER SET=utf8;
Copier après la connexion

7.修改数据表的存储引擎,有关存储引擎这方面暂时了解的不深,所以这条命令....嗯,你懂得。

MariaDB [mydb]> ALTER TABLE users ENGINE=MyISAM;
Copier après la connexion

会导致数据重建的...所以,谨慎修改

8.修改数据表的排序字段

MariaDB [mydb]> ALTER TABLE users ORDER BY logintime;
Copier après la connexion
删除一个数据表

与删除数据库一样,谨慎按下回车键

MariaDB [mydb]> DROP TABLE IF EXISTS users;
Copier après la connexion

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 de ce site Web
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
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal