新增图书信息,关于sqlserver字符类型查询条件区

在写sql的查询时 如下:

一、数据库的基本概念

昨晚完成了Web端新增图书信息的功能,现在就差DB的具体实现了。

 select * from Users where username='WangE'

        1.1  常用的关系型数据库

                       数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

因为我把Book相关的信息拆分的比较多,所以更新有点小麻烦。

 select * from Users where username='wange'

        1.2  sql语言

     SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的关系型数据库均支持SQL。

> data-wiz-span="data-wiz-span" style="color: #ff0000"> 

> data-wiz-span="data-wiz-span" style="color: #ff0000">特点

     非过程性语言。一条语句一个结果。多条语句之间没有影响。每一条SQL执行完都会有一个具体的结果出现。

 

style="font-size: 1.167rem">SQL是用来操作关系数据库的语言,具有查询、操纵、定义和控制关系型数据库的四方面功能

 

首先,我需要创建一个Book Type的Matter;

上面两条查询语句的结果是一样的,这说明username的条件并没有区分大小写。

        1.3  sql分类

style="font-size: 1.167rem; color: #ff0000">DDL (数据定义语言)

style="font-size: 1.167rem">数据定义语言 - Data Definition Language

style="font-size: 1.167rem">用来定义数据库的对象,如数据表、视图、索引等

style="font-size: 1.167rem">create drop alter truncate

 

style="font-size: 1.167rem; color: #ff0000">DML (数据操纵语言)

style="font-size: 1.167rem">数据处理语言 - Data Manipulation Language

style="font-size: 1.167rem">在数据库表中更新,增加和删除记录

如 update, insert, delete 不包含查询

 

style="font-size: 1.167rem; color: #ff0000">DCL (数据控制语言)

style="font-size: 1.167rem">数据控制语言 – Data Control Language

style="font-size: 1.167rem">指用于设置用户权限和控制事务语句

style="font-size: 1.167rem">如grant,revoke,if…else,while,begin transaction

 

style="font-size: 1.167rem"> > > style="color: #ff0000">DQL (数据查询语言)(★★★★★)

style="font-size: 1.167rem">数据查询语言 – Data Query Language

style="font-size: 1.167rem">数据表记录的查询。

style="font-size: 1.167rem">select

然后,将图片路径保存到FileBank中,并返回FileBankID;

 

二、对数据库进行操作的语句

 

1.1 数据库中默认自带有4个库:

        style="background-color: #ffd700">1.information_schema 数据库:

    其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据的表,表栏的数据类型与访问权限等。

      style="background-color: #ffd700">   2.performance_schema 数据库:

style="font-size: 1.167rem">存储引擎:命名PERFORMANCE_SCHEMA,主要用于手机数据库服务器性能参数。

        style="background-color: #ffd700">3.mysql 数据库:

        mysql库是系统库,里面保存有账户信息,权限信息,存储过程,event,时区等信息

      style="background-color: #ffd700">  4.test 数据库:

style="font-size: 1.167rem">这个是安装时候创建的一个测试数据库,和它的名字一样,是一个完全的空数据库,没有任何表,可以删除。

 

1.2 查看所有数据库

style="font-size: 1.167rem; background-color: #ffd700">1.1 查询当前所有的数据库

show databases;

style="font-size: 1.167rem; background-color: #ffd700">1.2 查看当前数据的创建方式:查看数据库的编码表

show create database 库名;

style="font-size: 1.167rem; background-color: #ffd700">1.3 创建数据库

create database 数据库名: 由于创建数据库时没有指定编码表,因此会使用安装数据库时默认的编码表

create database 数据库名 character set 编码表名;创建数据库会使用指定的编码表

style="font-size: 1.167rem; background-color: #ffd700">1.4 删除数据库

drop database 数据库名;

style="font-size: 1.167rem; background-color: #ffd700">1.5 修改数据库编码集

alter database 数据库名称 character set 字符集;

 

1.3 数据表结构的sql语句

        1.1 数据表的创建语句

        create table 表名(         

style="font-size: 1.167rem"> 列名 数据类型,          

style="font-size: 1.167rem"> 列名 数据类型,

style="font-size: 1.167rem"> ……

style="font-size: 1.167rem"> 列名 数据类型 (最后一个列不需要逗号)

        );

style="font-size: 1.167rem; background-color: #ffd700">1.2 查看表

       show tables : 查看该数据库的所有的表

                show create table 表名 :查看建表语句以及字符集

                desc emp 查看表的详细信息

                show columns from emp ;查看表的列信息

1.4 约束

        1.1 主键约束

                primary key

                varchar 类型的主键不可以自增长.

                示例:

                        【示例】

style="font-size: 1.167rem">create table 表名 (

style="font-size: 1.167rem"> id int primary key auto_increment,

style="font-size: 1.167rem"> name varchar(20),

style="font-size: 1.167rem"> ………….

style="font-size: 1.167rem">);

          1.2 唯一约束

                unique 内容不允许重复,可以为null(null不算重复)。 

一个表里可以添加多个唯一约束。

style="font-size: 1.167rem">【示例】

style="font-size: 1.167rem">create table 表名 (

 id int primary key auto_increment,

style="font-size: 1.167rem"> name varchar(20) unique,

style="font-size: 1.167rem"> ………….

style="font-size: 1.167rem">);

style="font-size: 1.167rem">唯一约束和主键约束的区别  

style="font-size: 1.167rem">1、唯一约束可以是空(null)。 但是主键约束不能为空

style="font-size: 1.167rem">2、一张表中只能有一个主键,但是唯一约束可以有多个

          1.3 非空约束

        not null 不允许为空 表示该列的内容 不允许为空。

style="font-size: 1.167rem">约束的目的。

style="font-size: 1.167rem">目的:保证数据的正确性。

style="font-size: 1.167rem">约束列。限制列的内容。

1.5  数据表结构的修改

        1.修改数据表

                可以对表名、表中的列名、列的类型、列的约束进行增删改

                语法 :alter table 表名  add/drop/modify  改名  类型长度  约束;

         2. 修改现有列的类型,长度和约束 用modify

       

  1. 修改现有列名称

                    语法 alter table 表名 change 旧列名 新列名 类型(长度) 约束;

·        4. 删除现有列

                    语法 alter table 表名 drop 列名;

          5. 修改表名 

                    语法 :rename table 旧表名 to 新表名

          6. 修改表的字符集 

                    语法 : alter table 表名 character set 编码集;

1.6 数据表的删除

         语法 : drop table 表名:

 

继续,插入Publisher信息(需要判断name不存在才会insert),然后返回PublisherID;

若要使用上面的的语句能够执行按区分大小写查询 需要在查询的结尾加上 collate Chinese_PRC_CS_AI_WS

三、数据记录的增删改

    

       在java代码中对数据库操作最频繁的就是对表中数据的CRUD操作:create read / retrive update delete

数据记录存储位置

            

                    增:  语法:insert into 表名 (列名,列名,列名。。。) values( 值,值,值。。。);

                    改:update 表名 set 列名 = 值 , 列名 = 值 .. . [where 条件语句];            notes:如果不加条件 则修改整列

                    删:delete :delete from 表名 [where 条件语句]                       

                             notes:如果没有where 删除表中所有的记录    delete 删除的是行

                                          truncate table 表名 是删除一个表,之后在根据你 的表结构在给你创建一张新表

 

 

 

 

 

 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 

 

 

 

来自为知笔记(Wiz)

 1 CREATE PROCEDURE [base].[Publisher#Insert](@json nvarchar(max), @id int out)
 2 WITH ENCRYPTION
 3 AS
 4 BEGIN
 5 ...
 6 
 7         declare    @name nvarchar(100);
 8         select    @name=Publisher from openjson(@json, '$') with (Publisher nvarchar(100))
 9 
10         -- insert Publisher
11         insert    base._Publisher(Name)select @name
12         where    not exists(select 1 from base._Publisher p where p.Name=@name);
13 
14         select    @id=ID from base.Publisher#Raw() where Name=@name;
15 ...
16 END

完整语句是:

 

select * from Users where username='WangE' collate Chinese_PRC_CS_AI_WS

继续,插入Binding信息(也需要判断name不存在才insert),返回BindingID;

 1 CREATE PROCEDURE [base].[Binding#Insert](@json nvarchar(max), @id int out)
 2 WITH ENCRYPTION
 3 AS
 4 BEGIN
 5 ...
 6 
 7         declare    @name nvarchar(100);
 8         select    @name=Binding from openjson(@json, '$') with (Binding nvarchar(100))
 9 
10         -- insert Binding
11         insert    base._Binding(Name)select @name
12         where    not exists(select 1 from base._Binding p where p.Name=@name);
13 
14         select    @id=ID from base.Binding#Raw() where Name=@name;
15 
16 ...
17 END

 

继续,插入Book信息;

继续,插入BookInfo的信息;

继续,插入BookNbr信息;

本文由ca88手机版登录发布于亚洲城ca88手机版官网,转载请注明出处:新增图书信息,关于sqlserver字符类型查询条件区

TAG标签: ca88手机版登录
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。