mysql 使用

好久没用,正好实验课写报告,回顾一下。

环境:windows

路径:mysql/bin

在一个cmd中输入mysqld --console,打开mysql服务,然后mysql开启。

补充:

1.Windows下

  • 启动服务
    • mysqld --console  
    • 或  net start mysql  
  • 关闭服务
    • mysqladmin -uroot shudown  
    • 或  net stop mysql  

2.Linux下

  • 启动服务
    • service mysql start   
  • 关闭服务
    • service mysql stop  
  • 重启服务
    • service restart stop  

这个cmd被占用,打开一个新的cmd,输入mysql.exe -u root -p,然后输入密码

登录成功。

 如果要添加用户,可以在user表里添加表项即可

mysql> use mysql;
Database changed

mysql> INSERT INTO user 
          (host, user, password, 
           select_priv, insert_priv, update_priv) 
           VALUES ('localhost', 'guest', 
           PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected (0.20 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
| host      | user    | password         |
+-----------+---------+------------------+
| localhost | guest | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)

注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string

注意:password() 加密函数已经在 8.0.11 中移除了,可以使用 MD5() 函数代替。

注意:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。

如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。

列出数据局列表:

show databases;

选择数据库:

use test;

列出所有这个数据库的表:

show tables;

显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。 

mysql> show columns from test;
+-----------+---------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------+------+-----+-------------------+-----------------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(100) | NO | | NULL | |
| courseId | int(20) | NO | MUL | NULL | |
| endDate | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| questions | varchar(2000) | NO | | NULL | |
| teacherId | int(11) | NO | MUL | NULL | |
| classIds | varchar(2000) | NO | | NULL | |
| testTime | int(11) | NO | | NULL | |
| scores | varchar(100) | YES | | NULL | |
+-----------+---------------+------+-----+-------------------+-----------------------------+
9 rows in set (0.19 sec)

按列打印:

show table status from test;

对比

show table status from testG;

创建数据库:

这条命令作用

  • 1. 如果数据库不存在则创建,存在则不创建。
  •  2. 创建RUNOOB数据库,并设定编码集为utf8

mysql> create database if not exists t_student default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| musicserver |
| mymusic |
| mymusicplayer |
| mysql |
| onlinexam |
| operationsdb |
| performance_schema |
| runoob |
| scores |
| t_student |
| terminaldb |
| test |
| tt |
| ttt |
+--------------------+
15 rows in set (0.00 sec)

删除数据库

显示 表的属性:

举例:

 完整性约束:

实体完整性,主键处不可取空值

思考:如果主键有两个或多个属性,必须满足每个属性不为空?

 建一个test表测试用;

desc检测表的属性,id和name是primarykey 插入时,单指定id 不指定name时不会出错,因为还可以区分而且不会与默认值想同,如果不插入

 允许两个主键时,插入元祖一个主键为空,至少填充有一个主键;第一个主键可以相同,第二个主键这时必须不同

原文地址:https://www.cnblogs.com/gudygudy/p/10567517.html