Mysql基础操作

49 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。   在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括使用INSERT实现数据 的插入、DELETE实现数据的删除以及UPDATE实现数据的更新。

更新数据   insert
更新数据   update
删除数据   delete


一、插入数据INSERT
1. 插入完整数据(顺序插入)
	语法一:
	INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES (值1,值2,值3…值n);

	语法二:
	INSERT INTO 表名 VALUES (值1,值2,值3…值n);

2. 指定字段插入数据
	语法:
	INSERT INTO 表名(字段2,字段3…) VALUES (值2,值3…);

3. 插入多条记录
	语法:
	INSERT INTO 表名 VALUES
		(值1,值2,值3…值n),
		(值1,值2,值3…值n),
		(值1,值2,值3…值n);
		
4. 插入查询结果
	语法:
	INSERT INTO1(字段1,字段2,字段3…字段n) 
					SELECT (字段1,字段2,字段3…字段n) FROM2
					WHERE …;

例子:
mysql> create table student7(id int,name varchar(20),sex enum('m','f'),age int(2));
mysql> desc student7;
+-------+---------------+------+-----+---------+-------+
| Field | Type          | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| id    | int(11)       | YES  |     | NULL    |       |
| name  | varchar(20)   | YES  |     | NULL    |       |
| sex   | enum('m','f') | YES  |     | NULL    |       |
| age   | int(2)        | YES  |     | NULL    |       |
+-------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> insert into student7 values(1,'jack','m',20);              \\顺序插入数据
mysql> insert into student7(name,age) values('bob',21);              \\指定字段插入数据
mysql> insert into student7 values(6,'jex','m',21),(7,'bob1','f',22);    \\插入多条记录

插入查询结果:
mysql> create table student_his(id int,name varchar(20),sex enum('m','f'),age int(2));
mysql> insert into student_his select * from student7 where name = 'bob';  \\插入查询结果
mysql> insert into student_his  select * from student7 where age > 17;	\\插入符合条件的






二、更新数据UPDATE
    语法:
	UPDATE 表名 SET
		    字段1=1,
		    字段2=2,
		    WHERE CONDITION;
    示例:
    
mysql> update student7 set id=8;		#修改全部
mysql> select *  from student7;
+------+------+------+------+
| id   | name | sex  | age  |
+------+------+------+------+
|    8 | jex  | m    |   21 |
|    8 | bob1 | f    |   22 |
+------+------+------+------+
2 rows in set (0.00 sec)

mysql> update student7 set id=9 where name="bob1";		指定条件
mysql> select *  from student7;
+------+------+------+------+
| id   | name | sex  | age  |
+------+------+------+------+
|    8 | jex  | m    |   21 |
|    9 | bob1 | f    |   22 |
+------+------+------+------+
2 rows in set (0.00 sec)

mysql> update student7 set id=10,name="youngfit" where name="bob1";
mysql> select * from student7;
+------+----------+------+------+
| id   | name     | sex  | age  |
+------+----------+------+------+
|    8 | jex      | m    |   21 |
|   10 | youngfit | f    |   22 |
+------+----------+------+------+
2 rows in set (0.01 sec)


三、删除数据DELETE
语法:
	DELETE FROM 表名 
		WHERE CONITION;
示例:
	DELETE FROM mysql.user 
		WHERE authentication_string=’’;

delete from 表名 where 条件;
mysql> delete from student7 where name="jack";

delete from 表名; //删除表的全部数据
mysql> delete from student7;
Query OK, 3 rows affected (0.00 sec)

mysql> select *  from student7;
Empty set (0.01 sec)

数据库必须具有UTF8字符集

create database jiradb character set utf8 collate utf8_bin;

  GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on <JIRADB>.* TO '<USERNAME>'@'<JIRA_SERVER_HOSTNAME>' IDENTIFIED BY '<PASSWORD>';
flush privileges;


# 给用户设定密码的两种方式
1.  UPDATE user SET password = PASSWORD('your_password') WHERE user = 'username';
    FLUSH PRIVILEGES;
2.  set password for root@localhost = password('your_password');

# 创建用户并授权用户
create user 'username'@'localhost' identified by 'your_password';
create database database_name default character set = 'utf8' default collate = 'utf8_general_ci';
grant all privileges on database_name.* to 'username'@'localhost';
flush privileges;

查看mysql数据库中的所有用户

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

查看某个用户的权限

show grants for 'nextcloud'@'%'; 

or

select * from mysql.user where user='root' \G;

查看当前用户

select user();

修改用户密码

use mysql;
UPDATE user SET password=PASSWORD('新密码') WHERE user='用户';
flush privileges;

修改用户权限及密码

grant 权限 on 库名.表名 to '用户名'@’网段‘  identified by  "该用户的密码";

grant all privileges on nextcloud.* to 'nextcloud'@'%' identified by 'du..olctx..entest.1';

删除用户

drop user 'nextcloud'@'%';

root更改密码

set password for root@localhost = password("Songhaofeng@123");



mysql> create database confluence default character set utf8 collate utf8_bin;
mysql> grant all on confluence.* to 'confluence'@'%' identified by 'confluence';
mysql> flush privileges;
如出现报错信息:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
    
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

修改MySQL初始密码

[root@localhost ~]# mysqladmin -uroot -p'/DBpfulrh8kl' password 'Song@123'