在学习SQL语句之前,首先需要区分几个概念,我们常说的数据库是指数据库软件,例如MySQL、Oracle、SQL Server等,而本文提到的数据库是指数据库软件中的一个个用于存储数据的容器。
在MySQL中,数据库称为database,数据表称为table,一个数据库软件中有多个数据库(databases),每个数据库中又可以有多个数据表(tables),最终,数据是存储在数据表中。
数据库和数据表之间的关系可以用下面这个图来表示,对于一个数据库来说,有多个数据表。
在正式开始写SQL语句之前,需要说明两点。
这里通过MySQL Workbench来写SQL代码,在Workbench中,执行一条SQL语句的方式有两种。
了解了这之后,接下来介绍一些常见的命令,分两部分:数据库常用命令和数据表常用命令。
1、查看有哪些数据库
2、创建数据库
创建一个名为Testdb的数据库。
3、创建数据库并指定编码格式
有些时候,为了防止中文乱码,创建数据库的时候需要指定编码格式。
4、使用某个数据库
使用mydb这个数据库,或者进入mydb这个数据库。
5、删除数据库
删除Testdb这个数据库。
1、查看有哪些数据表
进入某个数据库之后,想查看有哪些数据表,SQL语句为:
mydb是一个新建的数据库,所以自然是没有数据表。
2、创建数据表
建表SQL语句格式为:
说明: 每个字段以逗号分隔,最后一个字段不加逗号。
例如,给定一个学员信息表,如下表所示。
根据以上表格,建表SQL语句如下。
以上语句中,primary key表示主键,意思是这个字段作为记录的唯一标识,就像每个人的身份z号,都是唯一确定的。
3、查看表结构
查看表结构的SQL命令为:
执行该命令会显示表stuinfo的基本结构,例如有哪些字段,每个字段是什么类型,谁是主键等。
4、修改数据表
修改数据表通过drop子句进行,比如,建完表后,想增加一个字段,SQL语句的格式为:
想在指定位置增加一个字段,例如,在某个字段后增加一个字段,SQL语句的格式为:
如果在某个字段之前增加字段,用before即可。
例如,在字段age后增加一个字段major(专业),SQL语句为:
执行这个命令,再通过describe查看表结构,会发现表中多了一个字段major。
如果要删除major这个字段,通过drop子句,SQL语句为:
5、重命名表
重命名表通过alter+rename来实现,SQL语句格式为:
这里为了不影响之前创建的表,我们创建一个新表,SQL语句如下。
以上创建一个名为stuInfoTest的表,现在想将它的名称改成stuinfotest1,SQL语句为:
6、删除数据表
删除数据表通过drop进行,SQL语句格式为:
例如,删除数据表stuinfotest1,SQL语句为:
7、插入记录
此时的表stuinfo是空的,没有数据,我们要向表中插入记录。
插入记录通过insert into进行,SQL语句格式为:
例如,向表stuinfo插入一条记录,SQL语句为:
注意:上方是一条SQL语句,为了可读性换行,记住一条SQL语句默认以分号结尾。
如果需要一次性插入多条记录,SQL语句格式为:
例如,向表stuinfo再插入两条记录,SQL语句为:
注意:如果设置了主键,插入记录的主键字段是不能重复的,也就是不能插入重复的记录。
作业:大家可以按照上述方法将上面的学员信息表中的所有记录都插入表stuinfo中。
8、查询记录
有了数据之后,就可以查询记录了,查询记录通过select子句进行。
例如,想查询表stuinfo中的所有记录,SQL语句为:
执行之后,就可以看到表stuinfo中的所有记录了。
如果想查询符合某个条件的记录,就要用到where子句了,SQL格式为:
例如,想查询stuid为20161001的记录,SQL语句为:
9、删除记录
删除记录通过delete子句进行,SQL语句格式为:
例如,想删除stuid为20161002的记录,SQL语句为:
10、修改记录
修改记录通过update子句进行,update就是更新的意思,SQL语句格式为:
例如,想将学号(stuid)为20161001的记录的姓名(stuname)更新为Jack,SQL语句为:
以上,就是MySQL中的基本SQL语句。
零基础如何学习数据分析?查看下方专栏。
Mysql常用命令详解Mysql安装目录
数据库目录
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相关命令
/usr/bin(mysqladmin mysqldump等命令)
启动脚本
/etc/init.d/mysql(启动脚本文件mysql的目录)
系统管理
连接MySQL
格式:
mysql -h 主机地址 -u用户名 -p用户密码
例 1:连接到本机上的 MySQL。
hadoop@ubuntu:~$ mysql
-uroot -pmysql
例 2:连接到远程主机上的 MYSQL。
hadoop@ubuntu:~$ mysql -h
127.0.0.1 -uroot -pmysql
修改新密码
在终端输入:mysql -u用户名 -p密码,回车进入Mysql。
>
use mysql
>update user set password=PASSWORD('新密码') where
user='用户名'
>flush privileges#更新权限
>quit#退出
增加新用户
格式:grant select on 数据库.* to
用户名@登录主机 identified by '密码'
举例:
例 1:增加一个用户 test1 密码为
abc,让他可以在任何主机上登录,并对所有数据库有
查询、插入、修改、删除的权限。首先用以 root 用户连入
MySQL,然后键入以下命令:
mysql>grant select,insert,update,delete on *.* to
root@localhost identified by 'mysql'
或者
grant all privileges on *.* to
root@localhost identified by 'mysql'
然后刷新权限设置。
flush privileges
例
2:如果你不想 root 有密码 *** 作数据库“mydb”里的数据表,可以再打一个命令将密码消掉。
grant
select,insert,update,delete on mydb.* to root@localhost identified by
''
删除用户
hadoop@ubuntu:~$ mysql
-u用户名 -p密码
mysql>delete from user where user='用户名' and
host='localhost'
mysql>flush privileges
//删除用户的数据库
mysql>drop
database dbname
数据库 *** 作
显示所有的数据库
mysql>show databases(注意:最后有个
s)
创建数据库
mysql>create database
test
连接数据库
mysql>use
test
查看当前使用的数据库
mysql>select
database()
当前数据库包含的表信息
mysql>
show tables(注意:最后有个 s)
删除数据库
mysql>drop database
test
表 *** 作
备注: *** 作之前使用“use
<数据库名>”应连接某个数据库。
建表
命令:create
table <表名>(<字段名 1><类型 1>[,..<字段名 n><类型
n>])
例子:
mysql>create table MyClass(
>id int(4) not null
primary key auto_increment,
>name char(20) not null,
>sex int(4)
not null default '0',
>degree double(16,2))
获取表结构
命令: desc 表名,或者show columns from
表名
例子:
mysql>describe MyClass
mysql>desc MyClass
mysql>
show columns from MyClass
删除表
命令:drop table <表名>
例如:删除表名为
MyClass 的表
mysql>drop table MyClass
插入数据
命令:insert into <表名>[( <字段名
1>[,..<字段名 n >])] values ( 值 1 )[, ( 值 n )]
例子:
mysql>insert
into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang',
96.59)
查询表中的数据
查询所有行
mysql>
select * from MyClass
查询前几行数据
例如:查看表 MyClass 中前 2 行数据
mysql>
select * from MyClass order by id limit 0,2
或者
mysql>select * from
MyClass limit 0,2
删除表中数据
命令:delete from 表名 where 表达式
例如:删除表
MyClass 中编号为 1 的记录
mysql>delete from MyClass where id=1
修改表中数据
命令:update 表名 set 字段=新值,... where
条件
mysql>update MyClass set name='Mary' where id=1
在表中增加字段
命令:alter table 表名 add 字段 类型
其他
例如:在表 MyClass 中添加了一个字段 passtest,类型为 int(4),默认值为 0
mysql>alter
table MyClass add passtest int(4) default '0'
更改表名
命令:rename table 原表名 to 新表名
例如:在表
MyClass 名字更改为 YouClass
mysql>rename table MyClass to
YouClass
更新字段内容
命令:update 表名 set
字段名 = 新内容
update 表名 set 字段名 = replace(字段名, '旧内容', '新内容')
例如:文章前面加入 4
个空格
update article set content=concat('', content)
数据库导入导出
从数据库导出数据库文件
使用“mysqldump”命令
首先进入 DOS
界面,然后进行下面 *** 作。
1)导出所有数据库
格式:mysqldump -u [数据库用户名] -p
-A>[备份文件的保存路径]
2)导出数据和数据结构
格式:mysqldump -u [数据库用户名] -p
[要备份的数据库名称]>[备份文件的保存路径]
举例:
例 1:将数据库 mydb 导出到 e:\MySQL\mydb.sql
文件中。
打开开始->运行->输入“cmd”,进入命令行模式。
c:\>mysqldump -h localhost -u
root -p mydb >e:\MySQL\mydb.sql
然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。
例
2:将数据库 mydb 中的 mytable 导出到 e:\MySQL\mytable.sql 文件中。
c:\>mysqldump -h
localhost -u root -p mydb mytable>e:\MySQL\mytable.sql
例 3:将数据库 mydb
的结构导出到 e:\MySQL\mydb_stru.sql 文件中。
c:\>mysqldump -h localhost -u root -p
mydb --add-drop-table >e:\MySQL\mydb_stru.sql
备注:-h localhost
可以省略,其一般在虚拟主机上用。
3)只导出数据不导出数据结构
格式:
mysqldump -u [数据库用户名] -p -t
[要备份的数据库名称]>[备份文件的保存路径]
4)导出数据库中的Events
格式:mysqldump -u [数据库用户名] -p
-E [数据库用户名]>[备份文件的保存路径]
5)导出数据库中的存储过程和函数
格式:mysqldump -u [数据库用户名]
-p -R [数据库用户名]>[备份文件的保存路径]
从外部文件导入数据库中
1)使用“source”命令
首先进入“mysql”命令控制台,然后创建数据库,然后使用该数据库。最后执行下面 *** 作。
mysql>source
[备份文件的保存路径]
2)使用“<”符号
首先进入“mysql”命令控制台,然后创建数据库,然后退出 MySQL,进入 DOS
界面。最后执行下面 *** 作。
mysql -u root –p <[备份文件的保存路径]
1、用管理员登陆mysql2、创建数据库create database db01
3、创建用户
user01只能本地访问
CREATE USER user01@'localhost' IDENTIFIED BY 'password1'
user02可以远程访问
CREATE USER user02@'%' IDENTIFIED BY 'password1'
4、修改user01密码
SET PASSWORD FOR 'user01'@'localhost' = PASSWORD('password2')
5、授权
a)、user01管理db01全部权限
GRANT ALL PRIVILEGES ON db01.* TO user01
b)、user02查看权限,并修改密码
GRANT SELECT ON *.* TO 'user02'@'%' IDENTIFIED by 'password2'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)