0831 数据库建立,增删改查,各种函数类型,类型转换,模糊查询,排序

create database lian0831
go
use lian0831
go
create table stu
(
code int not null,
cid varchar(20) not null,
name varchar(10),

banji varchar(10),
sex varchar(10),
age int not null,
yufen decimal(18,2),
shufen decimal(18,2),
yingfen decimal(18,2),
)
insert into stu values(1001,‘370302199101011111‘, ‘张三‘,‘一班‘,‘男‘,25,70,65,76)
insert into stu values(1002,‘370302199101011112‘, ‘李四‘,‘一班‘,‘女‘,25,76,85,66)
insert into stu values(1003,‘370302199201011111‘, ‘李琦‘,‘一班‘,‘男‘,24,30,95,46)
insert into stu values(1004,‘370302199301011112‘, ‘齐娜‘,‘一班‘,‘女‘,23,60,65,68)
insert into stu values(1005,‘370302199201011112‘, ‘王琦‘,‘二班‘,‘女‘,24,74,68,76)
insert into stu values(1006,‘370302199302011111‘, ‘唐骑‘,‘二班‘,‘男‘,23,76,67,75)
insert into stu values(1007,‘370302199103011112‘, ‘崔倩‘,‘二班‘,‘女‘,25,70,35,86)
insert into stu values(1008,‘370302199404011111‘, ‘牛超‘,‘二班‘,‘男‘,22,72,64,78)
insert into stu values(1009,‘370302199107011112‘, ‘王雪‘,‘三班‘,‘女‘,25,73,64,77)
insert into stu values(1010,‘370302199207011111‘, ‘张瑞‘,‘三班‘,‘男‘,24,77,65,77)
insert into stu values(1011,‘370302199203011111‘, ‘许可‘,‘三班‘,‘男‘,24,74,63,72)
insert into stu values(1012,‘370302199004011111‘, ‘余克‘,‘三班‘,‘男‘,26,50,45,86)
sp_renamedb lian0831,xuesheng
sp_renamedb xuesheng,lian0831
select* from stu
select yufen from stu
--将yufen作为语文成绩显示出来
select yufen as 语文 from stu
--查询年龄为24的人的年龄,语文分数,性别
select yufen,name,sex from stu where age=24
--查询yufen在60到80之间的人的姓名
select name from stu where yufen between 75and 80
--查询时自动去重,并不删除,对一列去重显示
select distinct yufen from stu where age=24
--查询一班年龄为24的女同学的语文成绩
select yufen as 语文,name as 姓名 from stu where age=23 and sex=‘女‘ and banji=‘一班‘
--查询一班的年龄为23或者24的学生姓名
select age as 年龄,name as ‘姓名‘ from stu where age=23 or age=24 and banji =‘一班‘
--查询年龄在22到23的所有数据
select*from stu where age in(22,23)
--查询学号不是1003和1011之间的所有数据
select * from stu where code not in(1003,1011)
--不在1003和1011之间的
select * from stu where code not between 1003 and 1011

--模糊查询

--百分号可以表示任意字符,长度不限
select *from stu where name like ‘%李%‘
--下划线表示任意找一个字符
select *from stu where name like‘许_‘
--引号里面括号外加下划线,意思为任意一个括号里的值
select *from stu where name like‘_[许可,徐克]‘

--升序降序
--按照语文分数升序
select *from stu order by yufen asc
--按照数分降序
select shufen as 数学 from stu order by shufen desc
--按照数分降序前三名的所有数据
select top 3* from stu order by shufen desc
--年龄为25的数分降序排列
select *from stu where age=25 order by shufen desc
--年龄为25的数分降序排列,找出第一个
select top 1*from stu where age=25 order by shufen desc

--数学函数
--绝对值
select ABS(-5)--得出结果
print abs(-7)--得出消息
select *from stu where ABS(shufen)>=85
--取上限 ceiling
select yufen from stu where CEILING(yufen)>75
--取下限 floor 取下限
select FLOOR(1.7)
--n次方 power
select POWER(2,4)
select ‘这是‘+‘年龄的平方:‘,POWER(age,2) from stu
--round 四舍五入,逗号后边表示第几位
select ROUND(222.336,1)
--平方根
select SQRT(4)
--平方
select SQUARE(4)

--字符串函数
--ASCII 返回字符串中首字母的ASCII编码
select ASCII(‘name‘)
select ASCII (name) from stu
select name,ascii(name) from stu where ASCII(name)>200
--char 将ASCII转化为对应字符
select CHAR(77)
select CHAR(yufen) from stu
--charindex 在一个表达式中搜索另一个表达式,并返回起始位置
--在逗号的后面寻找逗号前面的字符段,返回首字母的索引,索引从1开始
select CHARINDEX(‘ef‘,‘abcdefghi‘)
select CHARINDEX(‘1992‘,cid) from stu--返回值为0说明没有找到。
--字符串的拼接
select ‘a‘+‘b‘+‘c‘
--difference 返回相似度,用0-4表示相似度
select DIFFERENCE(‘a‘,‘abc‘)
--left 逗号前是字符串,后边是从左向右截取多少
select left(‘abcdef‘,3)
--right 从右向左截取
select right(‘123456‘,3)
select LEFT(name,1)from stu where age=23
--len 查询字符串长度,前面的空格算,后面的空格不算
select LEN (‘ abc ‘)
select LEN(name) from stu where yufen>=75
--lower 将大写转化为小写
select lower(‘ABCdef‘)
--小写转大写
select UPPER(‘abcDEF‘)
--删除左边空格,相当于.net里的trimstart
select LTRIM(‘ a‘)
--删除右边的空格
select RTRIM(‘ 123 ‘)
--patindex相当于charindex,返回查找的字符段的首字母所在的索引
select PATINDEX(‘%cd%‘,‘abcdefg‘)--查找的字符串前后要加%,与charindex不一样。
--replace 替换显示,并不是更改
--第一个是查找的位置字符串,第二个是要选择更换的字符段,第三个是要改成的字符段。
select yufen,name,replace(sex,‘女‘,‘lady‘) from stu where age=25 order by yufen asc
--replicate 复制,可规定次数
select REPLICATE(‘a‘,2)--显示的是被复制的两遍
--reverse翻转字符串
select REVERSE(‘abcd ‘)
select REVERSE(name) from stu where age=24
--打印空格
select ‘a‘+SPACE(15)+‘b‘
--str 将一个小数转化为字符串,1参数是原数据,
--2参数是字符串长度(要大于等于原数据的整数部分的长度),
--3参数是截取小数点后几位,小数点也算一位
select STR(1111.111,6,3)
--stuff 参数1是源字符串,参数2是从第几位索引开始,
--参数3表示向后删除几位(包括索引到的开始的字符),
--参数4表示要插入的字符串
select STUFF(‘abcde12345‘, 1,2,‘哈哈‘)
--substring 从指定索引截取指定长度的字符串
select yufen ,SUBSTRING(name,1,1)from stu where age=24 order by yufen asc

--时间日期函数
SELECT @@DATEFIRST AS ‘1st Day‘, DATEPART(dw, GETDATE()) AS ‘Today‘
SELECT GETDATE()
SELECT @@DATEFIRST--系统常量,直接返回一个值
--dateadd,参数1是增加的项,参数2是增加多少,参数3是在哪个时间上增加
select DATEADD(YEAR,2,‘2007-01-01‘)--month day
--datediff 相差多少,参数1是指定那个数,餐宿2是开始,参数3是结束
select DATEDIFF(MONTH,‘2007-01-01‘,‘2007-05-01‘)
--datename 返回参数1指定的类型
select DATENAME(WEEKDAY,‘2011-1-2‘)--(year,month ,day,week)
--datepart等同于datename区别于datename返回字符串,datepart返回int

--getdate获取本地时间日期
select GETDATE()
--isdate判断时间日期格式是否正确,正确为1,错误为0
select ISDATE(‘1-2-31‘)
--精确获取时间
select SYSDATETIME()

--数据转换,函数转换
--cast
select CAST(123 as varchar(20))--值类型转化为字符串
select CAST(1.23 as int)--decimal类型转化为int
select CAST(123 as decimal(18,2))--int类型转化为decimal
select CAST(‘1.23‘ as decimal(18,2))--字符串类型转化为decimal
select CAST(‘12.3‘ as int)--字符串转int

--convert--前面写类型,后边写原数据,与cast相反
select convert(int ,‘123‘)

时间: 2024-10-25 09:51:30

0831 数据库建立,增删改查,各种函数类型,类型转换,模糊查询,排序的相关文章

C#通过窗体应用程序操作数据库(增删改查)

为了体现面向对象的思想,我们把"增删改查"这些函数封装到一个数据库操作类里:   为了便于窗体程序与数据库之间进行数据交互,我们建一个具有数据库行数据的类,通过它方便的在窗体程序与数据库之间传输数据. 首先,建立程序的主窗体 ㈠添加数据 当点击"增加",弹出一个子窗体,通过子窗体往数据库中添加一条数据 private void button1_Click(object sender, EventArgs e) { Form5 insert= new Form5();

【Visual Basic】vb6的ListView控件,对Access2003数据库的增删改查,判断是否有中文、多窗体操作

vb6对Access2003数据库的增删改查并不复杂,可以通过ado对象轻松完成,下面举个小例子,同时说明vb6中的ListView控件的使用.虽然在<[Visual Basic]列表控件ListView的增删改查.模态对话框.禁止窗口调整大小>曾经对VB.NET的ListView控件进行详细的说明,但是证明微软就是个坑爹货,vb6对于ListView实现的代码居然跟VB.NET有着彻底的不同,似乎换了一门语言似得的.改代码什么的最讨厌的. 首先,在vb6生成的工程文件夹中有着一个db1.md

mysql数据库的增删改查语句

连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [库名] 当前选择的库状态:SELECT DATABASE(); 创建数据表:CREATE TABLE [表名]([字段名] [字段类型]([字段要求]) [字段参数], ......); 显示数据表字段:describe 表名; 当前库数据表结构:show tables; =============

【Hibernate】Hibernate的在Eclipse+Mysql的配置、安装,纯Java,利用Annotation与HQL完成数据库的增删改查

这篇文章有很多槽点,在Hibernate4.x上面用着Hibernate3.x的写法去写.而且程序中放到Eclipse中会有一大堆警告,但是这好歹也在一定程度上完成了Hibernate的入门.毕竟现在很多介绍Hibernate的书籍都是用Hibernate3.x的写法去写.上次那篇<[Hibernate]最简单的Hibernate工程--账号注册系统>(点击打开链接)杂糅Struts的技术其实是不对的.因为Hibernate完成的是,从Java到数据库,从数据库到Java的任务.之后Java与

java jdbc 连接mysql数据库 实现增删改查

好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的

Django数据库的增删改查

通过一个实例学习Django数据库的增删改查 Django - 路由系统 url.py - 视图函数 views.py - 数据库操作 models.py - 模板引擎渲染 - HttpReponse(字符串) - render(request,'/path/a.html',{'name':'root'}) 一.示例:用户基本CURD 1.数据库设计 id hostname ip port status 2.功能的实现 创建  project (pycharm) django-admin sta

[实例]php中PDO方式实现数据库的增删改查

整理的比较容易理解的PDO操作实例,注意,需要开启php的pdo支持,php5.1以上版本支持实现数据库连接单例化,有三要素 静态变量.静态实例化方法.私有构造函数 DPDO.php //PDO操作类 //author http://www.lai18.com class DPDO{ private $DSN; private $DBUser; private $DBPwd; private $longLink; private $pdo; //私有构造函数 防止被直接实例化 private f

Asp.net MVC4 使用EF实现数据库的增删改查

EF的使用 步骤: (1)将EF添加到项目:在Model右击添加新建项 找到ADO.NET实体数据模型,接着... (2)实现数据库的增删改查 查询 (因为在Model中已经添加EF实体了,所以就可以在Controller中进行有关的数据库操作) <<controller>> //数据上下文对象 OrderDBEntities db = new OrderDBEntities(); public ActionResult Index() { //使用SQO(标准查询运算符),查询

Python网络编程06----django数据库的增删改查

首先定义model如下. class UserInfo(models.Model): username=models.CharField(max_length=50,null=True,primary_key=False,db_index=True) #可以为空,不是主键,创建索引 password=models.CharField(max_length=50,error_messages={"invalid":"出错"}) #定义出错信息 gender=model

Java操作数据库实现&quot;增删改查&quot;

本文主要讲解JDBC操作数据库    主要实现对MySql数据库的"增删改查" 综合概述: JDBC的常用类和接口 一   DriverManager类 DriverManage类用来管理数据库中的所有驱动程序,是JDBC的管理层,作用于用户和驱动程序之间,跟踪可用的驱动程序,并在数据库的驱动之间建立连接,DriverManager类中的方法都是静态方法,下列是DriverManager的常用方法: getConnection(String URL,String user,String