Mysql基础

Mysql基本语句

  1. 用户创建、权限、删除

    1.1创建于数据库的连接

    就像我们常用的Linux命令一样mysql也是可以通过命令来控制,连接mysql的命令连接
mysql -h 主机地址 -u 用户名 -p 用户密码
断开:exit (回车)

特别需要注意处于安全问题的考虑在登录mysql的时候,-p 参数之后并不是需要直接 加上密码而是直接敲ENTER 键 之后再下一行输入密码

1.2 创建用户:


​ 命令:CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’;
​ 参数说明:
​ username - 你将创建的用户名,
​ host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%。
​ password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

<h3>1.3为用户授权</h3>

​ 命令:GRANT privileges ON databasename.tablename TO ‘username’@‘host’
​ 参数说明:privileges - 用户的操作权限,如插入(INSERT),选择(SELECT) , 更新(UPDATE) 等.如果要授予所的权限则使用ALL.;

<h3>1.4撤销用户权限</h3>

命令: REVOKE privilege ON databasename.tablename FROM ‘username’@‘host’;
参数说明:同样给数据库加上增删改查的权限

<h3>1.5设置与更改用户密码</h3>

​ 命令:SET PASSWORD FOR ‘username’@‘host’ = PASSWORD(‘newpassword’);如果是当前登陆用户用SET PASSWORD = PASSWORD(“newpassword”);

1.6删除 用户


drop user

2 数据库与表显示、创建、删除


2.1查询、创建、删除数据库


创建数据库:Create database database_name
删除数据库:drop datebase databas_name
删库这种危险活动要谨慎哦!进入已经有的数据库:use database


2.2表的创建、查询与现实


查询已经有的数据库:Show tables;

在此之间应该使用use database 语句进入数据库
显示表的结构:desc 表名
创建表:Create table 表名 (字段设定);



CREATE TABLE student (
studentId varchar(255),
name varchar(255) ,
age INT,
address varchar(100),
e-mail varchar(100) ,
school_id varchar(255) ,
PRIMARY KEY (studentId),
KEY school_id (school_id)) ;ENGINE=InnoDB DEFAULT CHARSET=utf8;

删除表:drop table 表名;

查询(select)也是sql的重要操作,为了更好的说明问题


	INSERT INTO student VALUES(1,'Tom',NOW(),'W',01);
	INSERT INTO student VALUES(2,'Jack',NOW(),'M',02); 
	INSERT INTO student VALUES(3,'Blues',NOW(),'M',03); 
	INSERT INTO student VALUES(4,'Rose',NOW(),'W',04);
	INSERT INTO student VALUES(5,'Kobe',NOW(),'W',05);
查询所有字段
SELECT  * FROM  Student
查询某几个字段
	SELECT  id ,NAME FROM Student
一定条件
 SELECT id ,NAME  FROM Student WHERE id>=3
将字段匿名

	SELECT id AS '学号',NAME AS '姓名'  FROM Student WHERE id>=3
## 约束

  • 主键约束
  • 外键约束

多表查询

除了单一表的查询之外往往需要多张表一起查询。让我们来看看下面的例子;

首先建立另一个school表

CREATE TABLE `school` (
  `schoolId` varchar(255) ,
  `schoolName` varchar(255),
  PRIMARY KEY (`schoolId`)
);

内连接

SELECT 列名1,列名2... FROM1 INNER JOIN2 ON1.外键=2.主键 WhERE 条件语句;

这样,我们就可以student表中的 name字段 和 school 表中的 schoolName字段 合并了起来。

外连接

与取得双方表中数据的内连接相比,外连接只能取得其中一方存在的数据,外连接又分为左连接和右连接两种情况。接下来,我们将介绍这两种连接方式。

左外连接

左连接是以左表为标准,只查询在左边表中存在的数据,当然需要两个表中的键值一致。语法如下

SELECT 列名1 FROM1 LEFT OUTER JOIN2 ON1.外键=2.主键 WhERE 条件语句;

SELECT 
a.studentId, a.name ,b.schoolName 
FROM 
student a LEFT JOIN school  b ON a.school_id =b.school_Id;

-- 以左表为基础则会显示左表中所有的元素。反之若是以右表为基础则那些没有设置学校id的同学不会被查询出来

右外连接

同理,右连接将会以右边作为基准,将两个表按照条件合并。语法如下:

SELECT 列名1 FROM1 RIGHT OUTER JOIN2 ON1.外键=2.主键 WhERE 条件语句;

SELECT 
a.studentId, b.school_Id, a.name ,b.schoolName
FROM student a Right JOIN school  b ON a.school_id =b.school_Id;
-- 以右表为基础则会显示左表中所有的元素

子查询

通常我们在查询的SQL中嵌套查询,称为子查询。子查询通常会使复杂的查询变得简单,但是相关的子查询要对基础表的每一条数据都进行子查询的动作,所以当表单中数据过大时,一定要慎重选择。基本语法如下

SELECT 列名1 ...FROM 表名 WHERE 列名 比较运算符 (SELECT 命令);

SQL 中的Join

SQL left join 和 inner join 的区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值