从创建数据库到存储过程与用户自定义函数的小感,深入的学习mysql
代码如下:create database MyDb
on
(
name=mainDb,
filename='c:\MyDb\mainDb.mdf',
size=10,
maxsize=100,
filegrowth=4
),
(
name=secondDb,
filename='C:\MyDb\secondDb.ndf',
size=15,
maxsize=28,
filegrowth=2
)
log on
(
name=log_Db,
filename='C:\MyDb\log_Db',
size=20,
filegrowth=10%
)
--创建数据库的一般格式
use mydb
create table student
(
stuId int primary key identity (1,1),
stuName varchar (20) not null,
stuAge int not null check(stuAge between 20 and 50),
stuSex varchar(4) not null check(stusex in('F','M')),
stuDept varchar(20) check( stuDept in('软工系','环艺系','电子商务系')),
stuAddress varchar(20) not null
)
drop table student
select * from student
insert into student values ('孙业宝',22,'M','软工系','河北省邢台市')
insert into student values ('孙婷',20,'F','电子商务系','河北省邢台市')
insert into student values ('孟几',22,'F','电子商务系','河北省邢台市')
insert into student values ('小五',22,'M','软工系','河北省革要市')
insert into student values ('王丹丹',22,'M','软工系','河北省阜阳市')
insert into student values ('陈海波',22,'M','软工系','河北省合肥市')
--单一的输入输出参数的存储过程,
create proc Myproc
@Dept varchar(20),@count int output
As
if not exists(select * from student where Studept=@dept)
print '没有指定类型的学生存在!!'
else
select @count=Count(*) from student where studept=@dept
drop proc myproc
--执行该存储过程
declare @result int
Exec myproc '软工系',@result output
print @result
--多输入输出的存储过程.
create proc Searchstu
@area varchar(20),@Sex varchar(2),@count int output,@avg_age int output
as
select @count=count(*),@avg_age=Avg(stuage) from student
where stuaddress=@area and stusex=@sex
--执行该存储过程
declare @stuNo int ,@stuAvg_age int
exec searchstu '河北省邢台市','M',@stuNo output,@stuAvg_age output
select @stuNo as 学生总数,@stuavg_age as 平均年龄
--用户自定义的函数(求立方体体积定义标题函数返回单一值)
create function dbo.CubicVolume
(@CubeLength int,@CubeHenght int,@CubeWidth int)
Returns int
as
begin
return (@CubeLength*@CubeHenght*@CubeWidth)
end
drop function CubicVolume
--调用该方法
select dbo.CubicVolume(10,10,10)
--用户自定义的函数(内嵌表形式,返回一个表)
create function f_stuInfo(@studept varchar(20))
returns table
as
return
(
select * from student where studept=@studept
)
--调用该方法
select * from dbo.f_stuInfo('软工系')
--用户自定义的函数(多语句表值函数,返回一个用户想要显的部分数据的表)
create function f_stuSexTye(@stuDept varchar(10))
returns @t_stuDetailInfo table(
stuName varchar(20),
stuAge int ,
stuSex varchar(4)
)
as
begin
insert into @t_stuDetailInfo
select Stuname,stuage,
Case stusex
when 'M' then '男'
when 'F' then '女'
end
from student
where stuDept=@studept
return
end
--调用该方法函数
select * from dbo.f_stuTye('软工系')

MySQLDIFFERSFROMOTHERQLDIALCTSINSYNTAXFORLIMIT, Auto-Increment, StringComparison, Unterabfragen und Performanceanalyse.1) Mysqluse Slimit, whileqlServerusSestopandorakelSrownum.2) Mysql'Sauto_incrementContrastswithpostgresql'Sserialandoracle'ssequencandt

Die MySQL -Partitionierung verbessert die Leistung und vereinfacht die Wartung. 1) Teilen Sie große Tabellen nach bestimmten Kriterien (z. B. Datumsbereichen) in kleine Stücke, 2) Daten in unabhängige Dateien physikalisch unterteilen, 3) MySQL kann sich auf verwandte Partitionen konzentrieren, wenn Sie abfragen, 4) Abfragoptimierer kann nicht verwandte Partitionen überspringen, 5) Die Auswahl der richtigen Partitionsstrategie und die regelmäßige Wartung des Schlüssels ist der Schlüssel.

Wie kann man Berechtigungen in MySQL erteilen und widerrufen? 1. Verwenden Sie die Stipendienerklärung, um Berechtigungen wie GrantAllPrivileGesAndatabase_Name.to'username'@'host '; 2. Verwenden Sie die Revoke -Erklärung, um Berechtigungen wie RevokeAllPrivileGeDatabase_Name.From'username'@'host 'zu widerrufen, um eine rechtzeitige Kommunikation von Genehmigungsänderungen zu gewährleisten.

InnoDB ist für Anwendungen geeignet, die Transaktionsunterstützung und hohe Parallelität erfordern, während MyISAM für Anwendungen geeignet ist, für die mehr Lesevorgänge und weniger Schreibvorgänge erforderlich sind. 1.Innodb unterstützt Transaktions- und Bankebene, die für E-Commerce- und Banking-Systeme geeignet sind. 2.MyISAM bietet eine schnelle Lektüre und Indexierung, geeignet für Blogging- und Content -Management -Systeme.

Es gibt vier Haupt -Join -Typen in MySQL: Innerjoin, Leftjoin, Rightjoin und Fulouterjoin. 1.Nerjoin gibt alle Zeilen in den beiden Tischen zurück, die den Verbindungsbedingungen erfüllen. 2.Leftjoin gibt alle Zeilen in der linken Tabelle zurück, auch wenn in der rechten Tabelle keine übereinstimmenden Zeilen vorhanden sind. 3. Rightjoin ist gegen Leftjoin im Widerspruch und gibt alle Zeilen in der rechten Tabelle zurück. 4.Fulllouterjoin gibt alle Zeilen in den beiden Tischen zurück, die die Verbindungsbedingungen erfüllen oder nicht erfüllen.

MysqloffersVariousStorageEngines, EverySuitedfordifferentusecases: 1) InnoDbisidealforApplicationsNeedingaCidComplianceandHighConcurrency, SupportingingTransactions und MisseractersactionSactions.2) MyisamisBestforread-Heavyworks, Fehlen von Abladungen, mangelndtransaktionen

Zu den allgemeinen Sicherheitslücken in MySQL gehören die SQL -Injektion, schwache Passwörter, unsachgemäße Berechtigungskonfiguration und eine nicht updierte Software. 1. SQL -Injektion kann durch Verwendung von Vorverarbeitungsanweisungen verhindert werden. 2. Schwache Passwörter können vermieden werden, indem Sie starke Kennwortstrategien verwenden. 3. Eine unsachgemäße Berechtigungskonfiguration kann durch regelmäßige Überprüfung und Anpassung der Benutzerberechtigungen behoben werden. 4. Die nicht updierte Software kann durch regelmäßiges Überprüfen und Aktualisieren der MySQL -Version gepatcht werden.

Das Identifizieren langsamer Abfragen in MySQL kann erreicht werden, indem langsame Abfrageprotokolle aktiviert und Schwellenwerte festgelegt werden. 1. Aktivieren Sie langsame Abfrageprotokolle und setzen Sie Schwellenwerte. 2. Sehen und analysieren Sie langsame Abfrageprotokolldateien und verwenden Sie Tools wie MySQLDUMPSLOW oder PT-Query-Digest für eingehende Analysen. 3. Die Optimierung langsamer Abfragen kann durch Indexoptimierung, Umschreiben von Abfragen und Vermeidung der Verwendung von Select*erreicht werden.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.
