数据库的简单理解学习和使用

F2:编辑选中的文件夹名字

DBMS:DataBase Management System

Table 

主键是数据行的唯一标识:业务主键、逻辑主键 (没有任何业务意义的字段)

GUID:全球唯一标识

NChar:Unicode,用两个字节表示一个字符


select  列名,...  from 表  where  表达式1 and 表达式2 

delete from 表 where 表达式1 and 表达式2

update 表名  set 列1=值  ,列2=值

insert  into  表名(列1,列2.。。。) values (值1,值2 。。。)


利用MySQL CommandLine创建表格:

1、创建一个数据库: create database +数据库名字;

2、使用:use +数据库名字;

3、查看已创建的数据库:show databases;

4、创建表格:create  table new_table(   (回车)

id int,

name varchar(100)

);

数据库的登录:

用户名:机器名/./(local)

ip地址:回环地址:127.0.0.1

服务器名称:.\实例名;. 不加实例名的话就是默认实例

win+R:打开cmd,输入services.msc,打开服务窗口



表格的一些应用:

#给数据库添加了一个列
alter table UserInfo add iphone nvarchar(64) null

#添加数据,添加一行,这里只添加指定的一列显示有错误
insert into UserInfo(ID,Name,Address, iphone) values('001','小王','北京','12223')

# 创建了一个新的表格
create table DemoTable
(
	Id int ,
    Name1 nvarchar(32) 
)

#添加一列
alter table UserInfo add DelFlag smallint null

#给列添加默认值约束,约束名字DF_表名_列
#alter table UserInfo add constraint DF_UserInfo_DelFlag default(0) for DelFlag
#不知道为什么这里的default不可以使用

#删除数据库中的一列
#如果有约束,需要先删除约束再删除列
#alter table UserInfo drop constraint DF_UserInfo_DelFlag
#alter table UserInfo add DelFlag1 smallint null

#删除一列
alter table UserInfo drop column DelFlag1 

#增加一列
alter table demotable add DelFlag smallint null
#给表格添加一个主键
alter table demotable add constraint DK_demotable_Id primary key(Id)
#给表格添加一个唯一键约束
alter table demotable add constraint UK_demotable_DelFlag unique key(DelFlag)

#在表格UserInfo中添加一个外键,表格的最后面加了一列Name1
alter table UserInfo add Name1 int null
#添加一个外键关系,先添加一个外键链,外键链关联到哪一个列(error)
alter table UserInfo add constraint FK_UserInfo_demotable foreign key(Name1) references demotable(Name1)


数据库的查询 select

#给列起个别名用as 

#计算列表中有多少行数字
select count(*) from UserInfo#找表中最短的列进行统计
select count(1) from UserInfo#跟count(*)意义相同
select Name1 as AGE
select * from UserInfo
select getdate()#为什么得不到时间

#这种方式用来查看系统的状态
select @@VERSION #5.7.17-log

insert into UserInfo(ID,Name,Address, iphone) values('002','王','北京','2223')

#数据库的查询
select * from UserInfo where iphone<>1000#不等于
select * from UserInfo where iphone between 10 and 1000#不等于

insert into UserInfo(ID,Name,Address, iphone,DelFlag) values('007','aler','北京','2223','0')
#模糊查询
select * from UserInfo 
	#where iphone like '2%'  #%通配符,代表一个或者多个字符,以2开头的
	#where iphone like '%3%'   #其中包含3在内的,iphone中包含3的
	#where iphone like '_3%'		#只能匹配一个字符的,第二个字符为3的
	#where iphone like '%''%'		#字符中包含单引号的,‘’两个单引号代表一个单引号
	#where iphone like '%[0-9]%'	  #其中包含数字的
	#where iphone like '%[2,9]%'	  #其中包含数字的2或者9的,应该是这种 h 2 ,2单独存在,而不是一个整体2233
    #where iphone like '%[[]%'	  #其中包含[的,等同于下面的
    #where iphont like '%\[%' escape '\'
    #where DelFlag is null#查询DelFlag为null
    where Name is not null #查询Name不是null的


排序使用查询

use demosql #每次使用数据库时需要use一下
update userinfo set ID=001 ,Name='hello',Address='Chinese',iphone='12884',DelFlag='0',Name1='good'
insert into userinfo(ID,Name,Address,iphone,DelFlag) values('010','hello','Chinese','32535','7')

#将Address 中有的元素提取出来
select Address from userinfo
group by Address  #按照Address进行分组 

select Address,count(*),sum(ID) from userinfo
group by Address  #按照Address进行分组,将分组的个数传递出来

#经过group后,只能将分组后的信息查询出来
#只要使用了group by,select 后面只能跟group by 后面的字段或者是聚合函数


select 
	Address,
    count(*),
    sum(ID) 
  from 
	userinfo
  group by
	Address 

#类型转换

#现在将两个列合并到一起显示ID+address
select convert(nvarchar(64),ID)+iphone from userinfo
select cast(ID as nvarchar(64))+iphone from userinfo
select ID+iphone from userinfo

datediff()#两个时间的差
dateadd()#增加时间
select month('2010-2-3')  #2

select lower('HELLO')#转换成小写
#转换成小写,用在列中
select lower(address) from userinfo
select upper(address) from userinfo#转换成大写
select left(iphone,3)  from userinfo#取iphone的左边3个元素
select rtrim('  11212  ') #去掉空格

#查询前5个并降序排列
select top 5 ID from 
order by time1 desc(error)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚努力的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值