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 test\G;
创建数据库:
这条命令作用
- 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时不会出错,因为还可以区分而且不会与默认值想同,如果不插入
允许两个主键时,插入元祖一个主键为空,至少填充有一个主键;第一个主键可以相同,第二个主键这时必须不同