首页 > 数据库 >Sql基础

Sql基础

时间:2024-10-13 11:24:09浏览次数:6  
标签:语句 cmd 字节 数据库 sql 基础 Sql 表名

sql基础

1.数据库常用的数据类型

  1. image:存储byte[],存储什么都可以只要是byte[]

  2. 字符串类型:

    • char
    • nchar
    • varchar
    • nvarchar
    • text
    • ntext
    • varchar(max)
    • nvarchar(max)
  3. 数值类型

    • int
    • float
    • decimal

带n与不带n的区别

  • char(2)表示可以存储两个字节
  • 不带n的数据类型,存储中文等双字节符,占用两个字节,存储英文、数字等每个字符占用1个字节。
  • nchar(2)表示存储两个字符
  • n的数据类型,不论存储数字、英文还是中文都是一个字符,都是占两个字节。
  • n的数据类型长度最长可以设置为4000,而不带n的数据类型的长度最长可以设置为8000
  • char(8000) varchar(8000nchar(4000)nvarchar(4000)

带var与不带var的区别

  • char(10)固定的长度,存储一个字节也是要占用10个字节,会自动补9个字节。
  • varchar(10)可变长度,会根据存储数据的大小动态的重新分配存储空间,相对来说节省存储空间。
  • 10表示10字节,无论是可变长度还是固定长度,超过10个字节都会报错。

2.基础操作

更新语句

update 表名 set 列=新值,列2=新值2 where 条件

删除语句

delete form 表名 where 条件(条件可有可无)
truncate table 表名 (不可以加where条件)
  1. 删除整个表建议是用truncate
  2. truncate 删除时自动编号会恢复初始的值。
  3. 使用truncate删除表中所有的数据的时候要比delete效率高的多。

约束

  • 非空约束
  • 主键(PK)
  • 唯一约束(UQ)
  • 默认约束(DF)
  • 检查约束(CK)
  • 外键约束(FK)

修改表结构

alter table 表名 drop(你要进行的操作alter) coulumn 列名

查询表

select *from 表名 order by(默认为升序排序asc,降序为desc)
select Top 5 *from 表名 order by 列名 排序关键字。
select Top 30 percent  *from 表名 order by 列名 排序关键字。(百分比取的话系统自动向上取整)
select distinct 列名 from 表名

distinct:针对内存中查询出的结果集,去除重复记录。
Top:一般与order by(排序)来配合使用,不排序的话前几名就没有什么意义。

模糊查询 _ % [ ] ^

  • _表示任意的单个字符
  • %表示多个任意的字符
  • [ ]表示筛选一个范围。如[0-9]
  • ^非的意思

多表查询

语法:SELECT TABLE. FROM TABLENAME1 LEFT JOIN TABLENAME2 ON TABLENAME1.=TABLENAME2. WHERE

LEFT JOIN :返回左表中的所有数据
RIGHT JOIN :返回右表中的数据
FULL OUTER JOIN:返回左右表中的数据

SELECT 
P.ProName AS '省份',
P.ProID,
ISNULL( C.CityName,'未匹配') as '省份',
C.CityID FROM Province AS P 
LEFT JOIN City AS C 
ON P.ProID=C.ProID 
WHERE P.ProName='山东省'
ORDER BY P.ProID;

3.ADO连接数据库

连接数据库的基本步骤:(重点检查数据库连接字符串的还有sql语句的执行)

  1. 创建数据库连接字符。
  2. 创建数据库连接对象。
  3. 创建执行指向sql 语句的对象(sqlcommand)。
  4. 打开数据库连接。
  5. 执行sql语句。
  6. cmd.ExecuteNonQuery();//insert/delete/update语句时这个方法,这个方法有一个int的返回值,值是受影响的行数。执行其他的sql语句时永远返回-1。
  7. cmd.ExecuteScalar();//执行返回单个结果的时候使用这个方法。
  8. cmd.ExecuteReader();//查询出多行,多列时使用这个方法。
string constr = "Data Source=127.0.0.1;Initial Catalog=Test;User=sa;Password=neu@1234 ";

//创建数据库连接对象
using (SqlConnection con=new SqlConnection(constr))
{
    #region 插入语句的执行
    string sqlInsert = "insert into Tb_Student values('小黄','男',1333333333,18,'5454878','112')";
    //创建执行sql语句的对象
    using (SqlCommand cmd=new SqlCommand(sqlInsert, con))//插入数据
    {
        con.Open();
        Console.WriteLine("打开数据库连接成功!");

        int r= cmd.ExecuteNonQuery();

        Console.WriteLine("成功插入了{0}行",r);
        //cmd.ExecuteNonQuery();//insert/delete/update语句时这个方法,这个方法有一个int的返回值,值是受影响的行数。执行其他的sql语句时永远返回-1.

       //cmd.ExecuteScalar();//执行返回单个结果的时候使用这个方法

       //cmd.ExecuteReader();//查询出多行,多列时使用这个方法

} 

将变量作为入参传入sql语句:
string sql = string.Format("insert into Tb_Class values(N'{0}',N'{1}')", name, info);
使用string.Format方法,采用的也是挖坑填坑的方法。

标签:语句,cmd,字节,数据库,sql,基础,Sql,表名
From: https://www.cnblogs.com/xiao-ty/p/18461991

相关文章

  • 2024-2025-1学期 20241427 《计算机基础与程序设计》第3周学习总结
    作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03)这个作业的目标学会数字分类与计数法,以及进制转化,数字化和门的应用作业正文https://i.cnblogs......
  • 2024-2025-3-计算机基础与程序设计
    学期(如2024-2025-3)学号(20241404)《计算机基础与程序设计》第3周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13265这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)......
  • 2024-2025-1 学号20241315《计算机基础与程序设计》第三周学习总结
    作业信息这个作业属于哪个课程[2024-2025-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03这个作业的目标加入云班课,参考本周学习资源。自学教材:计算机科......
  • 2024-2025-1 《计算机基础与程序设计》 第三周学习总结
    作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13266这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#JXJC这个作业的目标学习数字分类与计数法,以及进制转换与数字化相关知识作业正文https:......
  • 2024-2025-1《计算机基础与程序设计》第3周学习总结20241428张雄一
    学期(如2024-2025-1)学号(如:20241300)《计算机基础与程序设计》第X周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03这个作业的目......
  • CSS基础知识四(盒子绝对定位)
    目录1.绝对定位概念(absolute)2、绝对定位语法2.1代码添加 position:absolute;2.2创建一个HTNL结构2.3添加CSS属性2.3给div1加入绝对定位4.绝对定位练习4.1做出以下效果图1.绝对定位概念(absolute)    -当元素的position属性值设置为absolute时,就开启......
  • 2024-2025-1 20241310 《计算机基础与程序设计》第三周学习总结 链接
    学期(如2024-2025-1)学号(如:20241300)《计算机基础与程序设计》第X周学习总结作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第一周作业这个作业的目标自学教材计算机科学概论(第七版)第2章,第3章......
  • Python从0到100(六十三):Python OpenCV-入门基础知识
    前言:零基础学Python:Python从0到100最新最全教程。想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、计算机视觉、机器学习、神经网络以及人工智能相关知......
  • MySQL 的索引和事务
    MySQL的索引事务1.索引首先知道两个事情索引是一种特殊的文件,包含对数据表所有记录的指针像目录一个表是可以产生多个索引的关键字是index索引的作用:用于快速定位和检索我们都知道mySQL每次的查询都会遍历一遍这个列利用好索引可以快速的定位检索数据......
  • 2024-2025-1 20241412《计算机基础与程序设计》第三周学习总结
    2024-2025-120241412《计算机基础与程序设计》第三周学习总结作业信息这个作业属于哪个课程[2024-2025-1-计算机基础与程序设计]https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里[2024-2025-1计算机基础与程序设计第一周作业]https://edu......