mysql:day1--sql基础(基本语法及常识)

SQL基础:

1、SQL语言都基于SQL92标准,但各数据库之间又存在差异。目前最新的标准为SQL99,它同样兼容SQL92。
2、SQL-Structured Query Language结构化查询语言。
2.1、DDL – 数据定义语言Data Definition Language
建库、建表、设置约束等:
create\drop\alter
2.2、DCL – 数据控制语言 Data Controll Language
数据授权,收回授权
grant\revoke
2.3、DML-数据操纵语言Data Manipulation Language。
主要指数据的增删查改
Select\delete\update\insert\call

基本操作:

mysql –uroot –p1234 //登录
mysql>show databases; //显示所有已经存在的数据库
mysql>use test; //使用某个数据库
mysql>show tables; //显示当前数据库中的所有表
mysql>help; //显示
mysql>desc tableName; //显示表结构
导出数据库中的所有表:在命令行模式下:
shell/> mysqldump –uroot –p1234 –d dbName > d:\a\a.sql
导入:导入时,必须要先手工建立一个新的数据库:
mysql>use dbName;
Mysql>source d:\a\a.sql
或:
shell/>mysql –uroot –p1234 –D dbname < d:\a\a.sql (注意参数-D是大写)

简单的数据操作:

1、建立数据库。DDL –数据定义语言
ceate database abc;
2、创建一个表。DDL
create table stud(…..);
3、向其中写入一行数据。DML
insert into
4、查询此行数据。DML
select
5、删除此行数据。DML
delete
6、删除此表。DDL
7、删除数据库 DDL

建数据库的语法\建数据表的语法:

建库:

Create database 数据库的名;

处理中文乱码问题:

Create database 数据库名 character set UTF8;//指定字符编码

建表:

Create table 表名(
字段名 数据类型(长度),…
)

其他更多参数可参见Mysql的开发手册。

MySql的数据类型:

查询Mysql的开发手册,查询data type可见所有的数据类型。

比较经常使用的数据类型为:

int、varchar、char、numeric(double,float)、text

Char与varchar的区别:

Char是定长数据,如果char(10)但里面只保存了1个字符,则它的长度仍然是10.-但Mysql对查询的结果进行了处理 ,所以使用legth无法判断它所占用的长度。
Varchar(10)时,如果里面只保存了1个字符,则它的长度为1,所以,varchar被称了可变长字符。
Char的取值范围为0-255
varchar的取值范围为0-65535.如果是UTF-8数据类型则可以保存0-21844字符。

Int和numeric:

Int类型不能保存小数位。
Numeric可以保存小数位。如numeric(4,2)则可以表示最大数据为:99.99。注意4是总位数,2是小数位数。

创建和修改表:

创建表:

Create table stud(
id int,
name varhcar(30)
);
创建时同时指定不能为空:
Create table tb(
     name varchar(20) not null
)

修改表:

Alter table stud
      add sex char(1);  /*添加一个新的字段 */

Alter table stud
      drop column sex;  /* 删除sex字段*/

数据CURD:

字符类型的数据前后要添加’’单引号。

插入数据

没有指定列时,要给出完整数据,且要对应顺序:
Insert into stud values(1,’Tom’,’1’);
优化写入,指定列:
Insert into stud(id,name) values(1,’jack’);

查询数据:

Select * from stud; – 通过*将所有列显示出来
查询指定的列:
Select id ,name from stud
另名:as
Select id as 编号,name as 姓名 from stud; //不建议使用中文
或是省去as关键字:
Select id 编号,name 姓名 from stud;
给表也取个别名:
Select s.id,s.name from stud as s;

修改数据:

Update stud set name=‘Jack’;
同时修改两个值:
Update stud set name=‘Rose’,id=22 where id=1;
在原值上面进行累加操作:
Update product set price=price*1.1 -所有商品的价格上涨10%

删除数据:

Delete from stud /全部删除/
Delete from stud where id=1; /删除指定的行 /
也可以使用
TRUNCATE TABLE stud; //它与delete的区别是不记录操作日志,即无法恢复数据。

导入脚本

source D:/JavaTraining2015_2/sstud.sql

导出脚本

mysqldump -uroot -p --databases aa > d:a/dd.sql

mysql第一天代码记录:

4、  命令行安装mysql
4.1、注册服务(注意以管理员身份操作:在我的电脑中打开“C:\Windows\System32”,找到文件“cmd.exe”,右键点击,选择“以管理员身份运行(A),进到目录“D:\mysql-5.5.24-winx64”,然后运行以下代码)
    bin\mysqld --install mysql-5.6.22-winx64 --defaults-file=d:\mysql-5.6.22-winx64\my.ini

4.2、 启动服务(以管理员身份运行)
    net start mysql-5.6.22-winx64 
     --也可右键点击“我的电脑”|“管理”|“服务和应用程序”|“服务”|找到“mysql-5.5.24-winx64”,右键点开,选择启动


4.3、命令行登录(把bin目录设到path环境变量中,则可省略“bin\”,后面同理)
   bin\mysql -u root -p
   --密码为空回车

   为root设密码(原密码为空时):mysqladmin -u root password "1234"
   修改root密码:mysqladmin -u root password oldpass "newpass"

4.4、停止服务(以管理员身份运行)
   net stop mysql-5.6.22-winx64


4.5 删除服务(以管理员身份运行)
    bin\mysqld --remove mysql-5.6.22-winx64


5、命令演示

※※了解※※ DCL– 数据控制语言    ----DBA
create user hncu identified by '1234';  //创建一个用户
grant all on *.* to 'hncu'@'%' with grant option; //把所有资源授权给用户hncu,并允许他在任何机器上登录使用
grant all on *.* to 'hncu'@'192.168.31.168' with grant option; //限制该用户只能在这台机器上登录



※※※  DML-数据操纵语言Data Manipulation Language。
主要指数据的增删查改
Select\delete\update\insert\call

show databases;  //显示所有数据名
use mydb;  //打开“mydb”这个数据库
show tables; //显示当前数据库的所有表名
select * from student;   //显示student表中的所有记录
select * from student where saddress='湖南长沙'; //显示(查询)saddress='湖南长沙'的所有记录

select sno,sname,saddress from student;   //显示student表中的指定字段

insert into student values(8000,'Jack','1995-1-1','中国北京'); //向student表插入一条记录

delete from student where sname='heihei'; //删除指定行
update student set sname='Rose' where sno='1009';

insert into student (sno,sname) values ('8001','aaaa');//只插入指定的列

※※※DDL – 数据定义语言Data Definition Language
建库、建表、设置约束等:
create\drop\alter
数据类型的知识点: charvarchar都可以用来定义字符类型的字段,区别:
char(15) ---固定长度15,如果赋值时只赋一个字符'a',那么里面数据是:1个字符'a'14个空格。-----类似Java当中的字符数组。
varchar(15)----可变长的char数组,如果赋值时只赋一个字符'a',那么里面数据就只有一个字符'a'。---类似Java当中的String

create table sstud(
  sno varchar(15) not null primary key,
  sname varchar(15) not null,
  age int,
  saddress varchar(30)
);

desc sstud; //显示表结构
insert into sstud values('1001','Jack',25,'长沙');
insert into sstud values('1002','Jack2',26,'长沙');
insert into sstud values('1003','Jack3',27,'长沙');
insert into sstud values('1004','Jack4',28,'长沙');

alter table sstud add column aa int;//修改表结构--添加一列
alter table sstud drop column aa;//修改表结构--删除一列
drop table sstud;
drop database aa;

导入脚本:
source D:/JavaTraining2015_2/sstud.sql

导出脚本
mysqldump -uroot -p --databases aa > d:a/dd.sql




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值